Prova:
<?
$str="En http://www.nic-sys.se/ cool hemsida.\n";
$str = preg_replace( "/\[url\](.+?)\[\/url\]/is", "<a target=\"_blank\" href=\"\\1\">\\1</a>", $str );
echo $str;
?>
/nicclas - http://www.nyhetsrubriker.com/
6 svar · 353 visningar · startad av ikaros
hallå!
jag håller på att få klart mitt forum, och har kommit till det här med forumkod. dvs detta:
http://cgi.webforum.nu/ssi/wfkod.shtml
Är inte en mästere på reguljära uttryck så jag tänkte att kanske någon här kan hjälpa mig på traven? Hur gör jag för att ersätta t ex
[ url ]http://www.adress.com[ / url ]
till
<a target="_blank" href="http://www.adress.com">http://www.adress.com</a>
?
[Redigerat av ikaros den 25 sep 2000]
Prova:
<?
$str="En http://www.nic-sys.se/ cool hemsida.\n";
$str = preg_replace( "/\[url\](.+?)\[\/url\]/is", "<a target=\"_blank\" href=\"\\1\">\\1</a>", $str );
echo $str;
?>
/nicclas - http://www.nyhetsrubriker.com/
tackar!
det funkar utmärkt! Om jag bara visste varför... Har ju läst reguljära uttryck på högskolan, men syntaxen är inte så väl dokumenterad på php.net...
Vad betyder /is i slutet, och hur funkar den där ettan (\\1) egenligen? är det någon typ av temporär variabel?
------------------
Micke Karlsson / Teknikchef / enjoymedia AB / Sthlm
varför funkar inte detta?
$message = ereg_replace("/\[blue\](.+?)\[\/blue\]/is", "<font color=\"0000FF\">\\1<\/font>", $message);
får felmeddelandet:
Warning: repetition-operator operand invalid in /home/m/www/forum/message_view.phtml on line 102
------------------
Micke Karlsson / Teknikchef / enjoymedia AB / Sthlm
Hejsan,
Mitt exempel använde preg_replace istället för ereg_resplace, då det är lättare att få preg_replace att lösa det du vill göra.
Prova:
$message = preg_replace("/\[blue\](.+?)\[\/blue\]/is", "<font color=\"0000FF\">\\1</font>", $message);
Jo, \\1 är en variabel som innehåller första matchningen.
"s" för att det skall fungera för tex en URL skriven över flera rader. "i" för "caseless".
nicclas, M.Sc Regular expressions :) - http://www.nyhetsrubriker.com
hehe ojdå, blev visst ett e istället för ett p... gammal vana...
nu funkar det! Tack än en gång, du har varit till STOR hjälp!
------------------
Micke Karlsson / Teknikchef / enjoymedia AB / Sthlm
Hur gör jag för att få
$tabell= preg_replace("/\[blue\](.+?)\[\/blue\]/is", "<font color=\"0000FF\">\\1</font>", $tabell);
att funka i en <table> på .php-sidan, och inte bara i ett forum (<textarea>)?