![]() |
# 1 | |
חבר בקהילה
|
[בעיה] str_replace עקשן =\
שמעו הקוד שלי הוא כזה:
PHP קוד:
עכשיו במסד זה שמור עם תגי HTML כמו BR וB וכאלה, אך שאני מציג את זה בתצוגה מסוימת ביטלתי אותם דרך htmlspecialchars, ואז זה משאיר לי את זה ככה: ציטוט:
ניסיתי גם עם preg_replace ... תודה לעוזרים ומצטער שאני פותח מלא אכולות פשוט מלא בעיות בפרוייקט.. =[ |
|
![]() |
![]() |
# 2 |
חבר מתקדם
|
נסה רק חלק מהתווים , כך תוכל לאתר את השגיאה..
קוד:
$msg = str_replace("<","",$msg); |
![]() |
![]() |
# 3 |
הוסטסניון
|
אם תסתכל בקוד מקור של הדף אתה תשים לב שאין לך באמת < או > בקוד אלא את הקוד ההפוך שלהם (שהפונקצייה htmlspecialchars יוצרת)
__________________
|
![]() |
![]() |
# 4 | ||
חבר בקהילה
|
אחרי שהוספתי את השורות:
PHP קוד:
ציטוט:
ציטוט:
|
||
![]() |
![]() |
# 5 |
אחראי פורום תחזוק שרתים
|
תעיף את htmlspecialchars, כי הוא לא מוציא כלום, אלא רק ממיר < ל < וכיו"ב, כדי שזה יהיה בטוח, אבל הוא לא מסיר כלום.
ע"מ להסיר טגים, יש פונקציה מאד יפה בשם strip_tags בהצלחה נ.ב, למתעקשים שבניכם, REGEXP נכון למקרה הזה הוא קוד:
<[a-zA-Z\/][^>]*>
__________________
Omer Cohen
Information Security Specialist eBaY Inc |
![]() |
![]() |
# 6 |
חבר בקהילה
|
תודה רבה עזרת לי מאוד!
|
![]() |
![]() |
# 7 |
חבר וותיק
|
טעות נפוצה:
תחשוב שניה איך זה עובד: קודם הוא משנה שם של הטאגים, אח"כ הוא מבטל BR? זה צריך להיות הפוך!: ביטל BR- תיקון טאגים: PHP קוד:
אגב, אולי אתה צריך את זה.. בשביל לבטל את כל הטאגים: striptags() ... |
![]() |
![]() |
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
|
|