19-02-2008, 20:28
|
|
|
חבר מתאריך: 01.12.07
הודעות: 112
|
|
בעיה בקוד PHP | הוצאת הטקסט ביעילות מתוך עורך טקסט...
שלום!
קודם כל אני מביא כאן את הקוד הזה רק כדי שתבינו על מה בדיוק אני מדבר:
קוד PHP:
function article_new2($text) { $patterns[] = "#\[PHP\](.*?)\[\/PHP\]#si"; $replacements[] = highlight_string(stripslashes("$1"), true); $patterns[] = "#&#"; $replacements[] = '&'; $patterns[] = "#<#"; $replacements[] = '<'; $patterns[] = "#>#"; $replacements[] = '>'; $patterns[] = "# #si"; $replacements[] = ' '; $patterns[] = "#\t#si"; $replacements[] = ' '; $patterns[] = "#\[(\/)indent\]#si"; $replacements[] = '<$1blockquote>'; $patterns[] = "#\[(sub|sup|strike|blockquote|b|i|u)\]#si"; $replacements[] = '<$1>'; $patterns[] = "#\[\/(sub|sup|strike|blockquote|b|i|u)\]#si"; $replacements[] = '</$1>'; $patterns[] = "#\[font=(.*?)\]#si"; $replacements[] = '<font face="$1">'; $patterns[] = "#\[color=(.*?)\]#si"; $replacements[] = '<font color="$1">'; $patterns[] = "#\[size=(.*?)\]#si"; $replacements[] = '<font size="$1">'; $patterns[] = "#\[highlight=(.*?)\]#si"; $replacements[] = '<font style="background-color:$1">'; $patterns[] = "#\[\/(font|color|size|highlight)\]#si"; $replacements[] = '</font>'; $patterns[] = "#\[center\]#si"; $replacements[] = '<div align="center">'; $patterns[] = "#\[left\]#si"; $replacements[] = '<div align="left">'; $patterns[] = "#\[right\]#si"; $replacements[] = '<div align="right">'; $patterns[] = "#\[justify\]#si"; $replacements[] = '<div align="justify">'; $patterns[] = "#\[\/(center|left|right|justify)\]#si"; $replacements[] = '</div>'; $patterns[] = "#\[email=(.*?)\]#si"; $replacements[] = '<a href="mailto:$1">'; $patterns[] = "#\[email\](.*?)\[\/email\]#si"; $replacements[] = '<a href="mailto:$1">$1[/email]'; $patterns[] = "#\[url=(.*?)\]#si"; $replacements[] = '<a href="$1">'; $patterns[] = "#\[url\](.*?)\[\/url\]#si"; $replacements[] = '<a href="$1">$1[/url]'; $patterns[] = "#\[img\](.*?)\[\/img\]#si"; $replacements[] = '<img src="$1">'; $patterns[] = "#\[img=(.*?)\]\[\/img\]#si"; $replacements[] = '<img src="$1">'; $patterns[] = "#\n+(\[list\])#si"; $replacements[] = '[LIST]'; $patterns[] = "#\n+(\[list=1\])#si"; $replacements[] = '[LIST=1]'; $patterns[] = "#\n+(\[\/list\])#si"; $replacements[] = '[/LIST]'; $patterns[] = "#\[list\]\n+#si"; $replacements[] = '[LIST]'; $patterns[] = "#\[list=1\]\n+#si"; $replacements[] = '[LIST=1]'; $patterns[] = "#\[\/list\]\n+#si"; $replacements[] = '[\/LIST]'; $patterns[] = "#\[hr\]#si"; $replacements[] = '<hr>'; $patterns[] = "#\[\/(email|url)\]#si"; $replacements[] = '</a>'; $patterns[] = "#\[list=1\]#si"; $replacements[] = '<ol>'; $patterns[] = "#\[list\]#si"; $replacements[] = '<ul>'; $patterns[] = "#\[\*\]#si"; $replacements[] = '<li>'; $patterns[] = "#\n#si"; $replacements[] = '<br>'; $patterns[] = "#<br[^>]*><li>#si"; $replacements[] = '<li>'; $patterns[] = "#<br[^>]*> <li>#si"; $replacements[] = '<li>'; $patterns[] = "#<br[^>]*><\/li>#si"; $replacements[] = '</li>'; $patterns[] = "#\[\/list\]#si"; $replacements[] = '</list>'; $patterns[] = "#\[FLASH=(.*?),(.*?)\](.*?)\[\/FLASH\]#si"; $replacements[] = '<object width="$1" height="$2"><param name="movie" value="$3"></param><param name="wmode" value="transparent"></param><embed src="$3" type="application/x-shockwave-flash" wmode="transparent" width="$1" height="$2"></embed></object>'; $text = preg_replace($patterns, $replacements, $text); if(get_magic_quotes_gpc($text)) $text = stripslashes($text); echo $text; }
סורי על זה שהוא ארוך רצח..
תשמעו מה הבעיה שלי..
החלק הזה מתוך הקוד:
קוד PHP:
$patterns[] = "#\[PHP\](.*?)\[\/PHP\]#si"; $replacements[] = highlight_string(stripslashes("$1"), true);
הקוד אמור לצבוע את הקוד בהתאם למנוע PHP תקני... כמו שנגיד מעלים פה קובץ של קוד PHP בסיומת phps והוא עושה כזה יפה את זה... מקווה שהבנתם.
בקיצור, יש לי פה בעיה, כי בהמשך הקוד יש כל מיני דברים שממירים דברים כמו < ל < על מנת שלא יוכלו להשתיל קודים למערכת.
או לדוגמא משהו עם IMG וכל מיני דברים שהם בדרך כלל בתוך קוד שאנשים כותבים.
ואז מה שקורה, בקוד מקור הוא לא כותב את הסימן > אלא את ה it הזה... ואז הוא לא מסמן את הטקסט בצבע.
אשמח אם משהו יעזור לי..
תודה רבה רבה מראש!
יובל..
נ.ב. אם אפשר לקבל דוגמא אני מאוד אשמח..!
|