fonction url_cliquable si deux url dans le texte

mmc26
Invité n'ayant pas de compte PHPfrance

21 déc. 2012, 21:42

Bonjour,

J'utilise la fonction ci-après qui marche bien si le texte contient une seule url. Avec deux url la fonction traite les deux url comme une seule et donc ça ne marche pas.

Comment l'améliorer ?
Merci pour votre aide.

Code : Tout sélectionner

function url_cliquable($string) { // le texte ou l on va rendre les email et les urls cliquables $in = array( '`((?:https?|ftp)://\\S+)(\\s|\\z)`', '`([[:alnum:]]([-_.]?[[:alnum:]])*@[[:alnum:]]([-_.]?[[:alnum:]])*\.([a-z]{2,4}))`', '`((?<!//)(www\.)\S+)(\s|\z)`' ); $out = array( '<a href="$1" target="_blank">$1</a>$2', '<a href="mailto:$1">$1</a>', '<a href="http://$1" target="_blank">$1</a>', ); return preg_replace($in, $out, $string); }