Dubbelt upp med preg_replace

PHP

2 svar · 242 visningar · startad av Eitraz

Medlem sedan sep. 2002366 inlägg
Trådstart#1

Tjosan!

Håller på o koda lite på en sida här och kom fram till en knepig grej som nog inte är speciellt svårt.

Det är så att jag med mina script ska plocka ut både länkar av typen [ url=http://www.sidan.com]En länk OCH av type http://www.sidan.com.

Hur gör jag så att inte den sista plockar ut länken i en som är innuti ?

försökte mig på såhär:

$text = preg_replace("/^(\[url=)(http:\/\/)([^<>\s]+)/i","<a href=\"http://$2\" target=\"_blank\"><u>Länk</u></a>",$text);

-Eitraz

Medlem sedan juni 20015 009 inlägg
#2
/* Tar hand om normala adresser. */ 
$string = preg_replace("/(?<=^|\s)((https?|ftps?):\/\/)?(([-_a-zA-Z]+\.)+)([a-zA-Z]{2,6})(\/[^\]\[\s]*)?(?=\s|$)/e","'$1'!=''? '<a href=\"$1$3$5$6\" target=\"$target\">$1$3$5$6</a>':'<a href=\"http://$3$5$6\" target=\"$target\">$3$5$6</a>'",$string); 

/* Tar hand om [[b][/b]url=][/url] */ 
$string = preg_replace("/\[url=((https?|ftps?):\/\/)?(([-_a-zA-Z]+\.)*)([a-zA-Z]{2,6})(\/[^\]\[\s]*)?\]([^\]\[]+)\[\/url\]?/e","'$1'!=''?'<a href=\"$1$3$5$6\" target=\"$target\">$7</a>':'<a href=\"http://$3$5$6\" target=\"$target\">$7</a>'",$string);
Medlem sedan dec. 2003153 inlägg
#3

Missar inte den där domännamn med siffror? Är nyvaken så jag kan ha missat nåt... :)

/* Tar hand om normala adresser. */ 
$string = preg_replace("/(?<=^|\s)((https?|ftps?):\/\/)?(([-_a-zA-Z0-9]+\.)+)
/* Tar hand om [url=][/url] */ 
$string = preg_replace("/\[url=((https?|ftps?):\/\/)?(([-_a-zA-Z0-9]+\.)*)

Allt som kommer efter det där är samma... tror jag...

261 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
133 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)