הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

חזור   הוסטס - פורום אחסון האתרים הגדול בישראל > עיצוב גראפי, תכנות על כל שפותיו וקידום ושיווק אתרים > פורום תיכנות

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 21-10-08, 21:30   # 1
CodeX
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2006
הודעות: 172

CodeX לא מחובר  

[בעיה] str_replace עקשן =\

שמעו הקוד שלי הוא כזה:
PHP קוד:
$msg htmlspecialchars($row2['msg']);
$msg substr($msg,$start,$length); 

$msg str_replace("<Br />","",$msg);
$msg str_replace("<b>","",$msg);
$msg str_replace("</b>","",$msg); 
בקיצור $msg שלוף הודעה מהמסד.
עכשיו במסד זה שמור עם תגי HTML כמו BR וB וכאלה,
אך שאני מציג את זה בתצוגה מסוימת ביטלתי אותם דרך htmlspecialchars, ואז זה משאיר לי את זה ככה:
ציטוט:
<b>[מדריך] הורדה מבלה בלה</b> <Br /> <Br />רשית כנסו לאתר: <Br />שדגשדגשדג <Br /> <Br /> <Br />עכשיו...
הגדרתי את str_replace והוא לא מחליף אותם לכלום!
ניסיתי גם עם preg_replace ...

תודה לעוזרים ומצטער שאני פותח מלא אכולות פשוט מלא בעיות בפרוייקט.. =[
  Reply With Quote
ישן 21-10-08, 22:13   # 2
HOLD
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Oct 2008
הודעות: 623

HOLD לא מחובר  

נסה רק חלק מהתווים , כך תוכל לאתר את השגיאה..

קוד:
$msg = str_replace("<","",$msg);
וככה את כולם..
  Reply With Quote
ישן 21-10-08, 22:22   # 3
Elad-A
הוסטסניון
 
מיני פרופיל
תאריך הצטרפות: May 2006
הודעות: 1,987

Elad-A לא מחובר  

אם תסתכל בקוד מקור של הדף אתה תשים לב שאין לך באמת < או > בקוד אלא את הקוד ההפוך שלהם (שהפונקצייה htmlspecialchars יוצרת)
  Reply With Quote
ישן 21-10-08, 22:28   # 4
CodeX
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2006
הודעות: 172

CodeX לא מחובר  

אחרי שהוספתי את השורות:
PHP קוד:
$msg preg_replace("<Br />","",$msg);
$msg preg_replace("<b>","",$msg);
$msg preg_replace("<i>","",$msg); 
קיבלתי:
ציטוט:
<>שד</> <><>שגשדג</>...
במקום:
ציטוט:
<b>שד</b> <Br /><i>שגשדג</i>...
PREG יותר יעיל אבל בכל זאת זה לא מוריד את ה < > /
  Reply With Quote
ישן 21-10-08, 22:45   # 5
omercnet
אחראי פורום תחזוק שרתים
 
מיני פרופיל
תאריך הצטרפות: Aug 2006
גיל: 38
הודעות: 722

omercnet לא מחובר  

תעיף את htmlspecialchars, כי הוא לא מוציא כלום, אלא רק ממיר < ל &lt; וכיו"ב, כדי שזה יהיה בטוח, אבל הוא לא מסיר כלום.

ע"מ להסיר טגים, יש פונקציה מאד יפה בשם strip_tags

בהצלחה


נ.ב,
למתעקשים שבניכם, REGEXP נכון למקרה הזה הוא
קוד:
<[a-zA-Z\/][^>]*>
__________________
Omer Cohen
Information Security Specialist
eBaY Inc
  Reply With Quote
ישן 21-10-08, 22:46   # 6
CodeX
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2006
הודעות: 172

CodeX לא מחובר  

תודה רבה עזרת לי מאוד!
  Reply With Quote
ישן 22-10-08, 01:25   # 7
AlmogBaku
חבר וותיק
 
AlmogBaku's Avatar
 
מיני פרופיל
תאריך הצטרפות: Nov 2007
מיקום: מודיעין
הודעות: 1,022

AlmogBaku לא מחובר  

טעות נפוצה:

תחשוב שניה איך זה עובד:
קודם הוא משנה שם של הטאגים, אח"כ הוא מבטל BR?
זה צריך להיות הפוך!: ביטל BR- תיקון טאגים:

PHP קוד:
$msg=str_ireplace("<br/>"""$msg);
$msg=htmlspecialchars($msg); 

אגב, אולי אתה צריך את זה.. בשביל לבטל את כל הטאגים: striptags() ...
  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


כל הזמנים הם GMT +2. הזמן כעת הוא 10:48.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ