Php regex
Fermé
Bilow
-
17 juil. 2010 à 13:24
Defouille Messages postés 388 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 15 novembre 2011 - 20 juil. 2010 à 16:11
Defouille Messages postés 388 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 15 novembre 2011 - 20 juil. 2010 à 16:11
1 réponse
Defouille
Messages postés
388
Date d'inscription
mercredi 13 janvier 2010
Statut
Membre
Dernière intervention
15 novembre 2011
54
20 juil. 2010 à 16:11
20 juil. 2010 à 16:11
Bonjour,
voila une petite procédure qui fait ce que tu veux, il faudra ajouter l'url_encode je crois, enfin voila :
En espérant que ça te soit utile.
NB : (la fin des liens n'est considéré que comme un espace, si le lien a une virgule après ou s'il est entre parenthèses cette version ne marchera pas, il faudra la modifier ^^)
voila une petite procédure qui fait ce que tu veux, il faudra ajouter l'url_encode je crois, enfin voila :
$msg_base = htmlentities("Le lien est : http://domaine.be/hello/index.php#haut?bas ... Voila et https://www.google.fr/?gws_rd=ssl !"); $msg = $msg_base ; $new_msg = ""; while(preg_match("#(http|https|ftp|mms)://[^ ]+#", $msg)) { $debut_lien = strpos($msg, "http://"); $temp = strpos($msg, "https://") ; if($debut_lien === false || ($temp !== false && $temp <$debut_lien)) $debut_lien = strpos($msg, "https://") ; $temp = strpos($msg, "ftp://") ; if($debut_lien === false || ($temp !== false && $temp <$debut_lien)) $debut_lien = strpos($msg, "ftp://") ; $temp = strpos($msg, "mms://") ; if($debut_lien === false || ($temp !== false && $temp <$debut_lien)) $debut_lien = strpos($msg, "mms://") ; $fin_lien = strpos($msg, " ", $debut_lien); $lien = substr($msg, $debut_lien, $fin_lien-$debut_lien); //echo "=>".$lien."<br/>"; $new_msg.=substr($msg, 0, $debut_lien); $new_msg.='<a href="'.$lien.'">'.$lien.'</a>'; $msg = substr($msg, $fin_lien); } $new_msg.=$msg; echo $msg_base."<br/>"; echo $new_msg ;
En espérant que ça te soit utile.
NB : (la fin des liens n'est considéré que comme un espace, si le lien a une virgule après ou s'il est entre parenthèses cette version ne marchera pas, il faudra la modifier ^^)