Pues nada, ya lo he conseguido con el VBulletin del Kazaa.
![Pirata](http://static.forosdelweb.com/fdwtheme/images/smilies/pirate.png)
Tranquilos, no voy a usarlo, sólo necesitaba la función.
Para los interesados:
Código PHP:
function parseurl($messagetext)
{ // the auto parser - adds [url] tags around neccessary things
$urlSearchArray = array(
"/([^]_a-z0-9-=\"'\/])((https?|ftp|gopher|news|telnet):\/\/|www\.)([^ \r\n\(\)\^\$!`\"'\|\[\]\{\}<>]*)/si",
"/^((https?|ftp|gopher|news|telnet):\/\/|www\.)([^ \r\n\(\)\^\$!`\"'\|\[\]\{\}<>]*)/si"
);
$urlReplaceArray = array(
"\\1[url]\\2\\4[/url]",
"[url]\\1\\3[/url]"
);
$emailSearchArray = array(
"/([ \n\r\t])([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,4}))/si",
"/^([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,4}))/si"
);
$emailReplaceArray = array(
"\\1[mail]\\2[/mail]",
"[mail]\\0[/mail]"
);
$text = preg_replace($urlSearchArray, $urlReplaceArray, $messagetext);
if (strpos($text, "@")) {
$text = preg_replace($emailSearchArray, $emailReplaceArray, $text);
}
return $text;
}
Así añado los tag necesarios para el foro. Luego los sustituye. Con esta función da igual el carácter que haya al final, pero no así al principio. P. ej. al principio coje el ( pero no una ".
Un saludo