webForumDet fria alternativet

forumkod

PHPur PHP

6 svar · 353 visningar · startad av ikaros

Medlem sedan juni 2000114 inlägg
Frågan#1

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]

Medlem sedan feb. 20001 050 inlägg
#2

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/

Medlem sedan juni 2000114 inlägg
#3

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

Medlem sedan juni 2000114 inlägg
#4

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

Medlem sedan feb. 20001 050 inlägg
#5

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

Medlem sedan juni 2000114 inlägg
#6

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

Medlem sedan maj 20023 inlägg
#7

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>)?

140 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)