webForumDet fria alternativet

Dubbelt upp med preg_replace

PHPur PHP

2 svar · 233 visningar · startad av Eitraz

Medlem sedan sep. 2002366 inlägg
Frågan#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...

129 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)