Hallo,

Ik ben op zoek naar de regexpression voor automatisch email en link om te zetten, deze heb ik dan ook gevonden maar ik werk ook nog met ubb codes en dus zoek ik de expressie dat wanneer er geen [ url]-tags staan het wordt omgezet
en als jullie misschien echt te veel tijd zouden hebben liefst ook nog dat een url met een img extensie (bijvoorbeeld .gif of .jpg) automatisch word omgezet naar [img]-tags...

Bedankt!
mitch! :p
Mitch? Wat is er met mij?

Hier om je op weg te helpen:
<?
$text = "Er was eens op www.phphulp.nl een admin genaamd Bas.";
$text2 = "Of was het nou http://www.phphulp.nl ???.";

function convert($text)
{
$retext = preg_replace("/((http:\/\/)*www\.[a-z0-9_\-\/.]+\.[a-z]{2,4})/is", "<a href=\"\\1\" target=\"blank\">\\1</a>", $text);

return $retext;
}

$text = convert($text);
$text2 = convert($text2);

echo $text;
echo $text2;
?>

http://sh4d3h.ath.cx/ubb.php staat deze code als file :P kun je kijke :)
nja dat had ik zelf ook wel, denk dat ik het niet goed uitgelegd heb:

ik heb een ubb parser en die zorgt ervoor dat [url ] of [url= ] laat omzetten naar <a href...> maar als ik dan dit script pak dan word die link in <a href> nog eens omgezet en dat is geen mooi zicht!
maar omdat ik niet zo goed ben in regular expressions weet ik niet hoe je ziet of het begint op [url= of [ url]
wat is hier ongeveer de juiste code voor?

Dank
Zo dus:
<?
$text = preg_replace("/\[url=([:a-z0-9.\/_\-?=;&]*)\]([A-Za-z0-9.\/]*)\[\/url\]/i","<a href=\"\\1\">\\2</a>",$text);
?>
Die werkt alleen als je [ url= ]text[ /url ] gebruikt en niet zomaar met <a href ...>
Of is dit het ook niet?
neen, die tags heb ik ook al ;)
het script zou er moeten voor zorgen dat ALLES werkt:

[url ]
[url= ]
http://
www

maar als ik nu deze pak:

$retext = preg_replace("/((http:\/\/)*www\.[a-z0-9_\-\/.]+\.[a-z]{2,4})/is", "<a href=\"\\1\" target=\"blank\">\\1</a>", $text)

dan worden de urls die in de [url ] en in de [url= ] staan ook omgezet en dan word het een warboel.

dus het komt erop neer dat zoals in phpbb je gewoon de url kan ingeven, ofwel met [url ] ofwel met [url= ]
Jah ik zat er net DreamWeaver al me te stressen maar het is me nog niet gelukt :'(
nja zit er ook al een onderhalf weekje op te zoeken en te googlen enzo maar helaas.
heb zelfs phpbb overhoop gehaald en het toch niet gevonden!
Morgen zal ik het nog eens proberen :)
In perl:
$message =~ s/\[url\](.*)\[\/url\]/<a href=\"$1\">$1<\/a>/gi;

vertaald naar php:
<?
$message = preg_replace("/\[url\](.*)\[\/url\]/gi", "<a href=\"$1\">$1<\/a>", $message)
?>

$message =~ s/\(.*)\[\/url\]/<a href=\"$1\">$2<\/a>/gi; #Automatische URL detectie $message =~ s/^(http:\/\/\S+)/<a href=\"$1\" target=_new>$1<\/a>/gim; $message =~ s/(\s)(http:\/\/\S+)(\s)/$1<a href=\"$2\" target=_new>$2<\/a>$3/gim; $message =~ s/(\s)(http:\/\/\S+)$/$1<a href=\"$2\" target=_new>$2<\/a>/gim; In 5 delen: [1] \[url\]\[/url\] sytax [2] [url=] syntax
[3] een url aan het begin van een regel
[4] een url tussen spaties
[5] een url aan het eind

Dit heeft een redelijke tijd geduurd om dit door te krijgen. Het is ook verstandig eerst de \[url\] syntax, en later pas de rest nog te detecten.

Grtz,

Adje

Reageren