18-10-2005, 22:50
|
|
|
חבר מתאריך: 17.05.04
הודעות: 1,454
|
|
ביטוי רגולארי (אותו בעיה - ביטוי אחר)..
רק פשוט באשכול הקודם זה היה על ביטוי אחר..
אז בגלל שזה ביטוי אחר אז רציתי לעשות קצת סדר..
קוד PHP:
<html>
<head>
<title>
CRAZY
</title>
<head>
<body>
<?
function LINK($str){
$link=preg_replace("/\[URL=(\S+)\](.+)\[\/URL\]/isU","<a href=\"\\1\" target=\"blank\">\\2</a>",$str);
return $link;
}
function phpcode($str){
return preg_replace('/\[PHP](.+)\[\/PHP\]/iseU',"php_highlight_str(stripslashes('\\1'))", $str);
}
function php_highlight_str($str){
highlight_string ($str,FALSE);
}
function text($str){
$text=php_highlight_str(phpcode(LINK("$str")));
return $text;
}
echo text('[php]<? echo "bla bla"; ?>[-/php] bla bla <? echo "bla bla"; ?> bla bla [url=http://www.walla.co.il]Walla[/url]');
?>
</body>
</html>
הבעיה היא שזה עושה highlight_string לכל הטקסט..
ככה שאני לא יכול לעשות פונקציות אחרות (כגון הLINK פה במסמך..) בגלל שזה הופך את ה<> לסמלים וזה לא פותח תגית..
עכשיו הקוד למעלה מוציא לפלט :
קוד:
<html>
<head>
<title>
CRAZY
</title>
<head>
<body>
<code><font color="#000000">
<font color="#0000BB"><? </font><font color="#007700">echo </font><font color="#DD0000">"bla bla"</font><font color="#007700">; </font><font color="#0000BB">?></font>
</font>
</code><code><font color="#000000">
bla bla <font color="#0000BB"><? </font><font color="#007700">echo </font><font color="#DD0000">"bla bla"</font><font color="#007700">; </font><font color="#0000BB">?></font> bla bla <a href="http://www.walla.co.il" target="blank">Walla</a></font>
</code></body>
</html>
תמונה :
כמו שאתם רואים הלינק לא עובד בגלל שהפונקציה של הקוד PHP היא על כל הטקסט..
גם עשיתי את המודיפקטור U שלא הופך את זה לחמדן אבל זה לא פותר את זה.. זה עדיין עושה את הפונקציה על כל הטקסט (גם על הbla bla) ...
רעיונות, פתרונות הכל מבורך :}
_____________________________________
EVERYTHING SHOULD BE MADE AS SIMPLE AS POSSIBLE, BUT NOT ONE BIT SIMPLER
ALBERT EINSTEIN
נערך לאחרונה ע"י Rs3k בתאריך 18-10-2005 בשעה 22:53.
|