Bonjour,
J'ai créé une fonction de reconnaissance automatique de lien, qui marche bien globalement sauf quand une balise est accolée au lien.
Par exemple :
"http://www.google.fr est un moteur de recherche"
devient bien
"<a href="http://www.google.fr" target="_blank">www.google.fr</a> est un moteur de recherche"
mais
"http://www.google.fr<br />est un moteur de recherche"
va faire planter ma page en devenant
"<a href="http://www.google.fr<br /" target="_blank">www.google.fr<br /</a> est un moteur de recherche"
Mon expression régulière ne s'arrête pas au premier "<" (ou autre) rencontré, alors qu'il ne fait pas partie de mon expression autorisée.
Comment résoudre le problème ? Ou comment l'exclure efficacement ?
Voici ma fonction :
Merci pour votre aide !
J'ai créé une fonction de reconnaissance automatique de lien, qui marche bien globalement sauf quand une balise est accolée au lien.
Par exemple :
"http://www.google.fr est un moteur de recherche"
devient bien
"<a href="http://www.google.fr" target="_blank">www.google.fr</a> est un moteur de recherche"
mais
"http://www.google.fr<br />est un moteur de recherche"
va faire planter ma page en devenant
"<a href="http://www.google.fr<br /" target="_blank">www.google.fr<br /</a> est un moteur de recherche"
Mon expression régulière ne s'arrête pas au premier "<" (ou autre) rencontré, alors qu'il ne fait pas partie de mon expression autorisée.
Comment résoudre le problème ? Ou comment l'exclure efficacement ?
Voici ma fonction :
function detecte_lien($str){
return preg_replace('#(https?://)([\w\d.&:\#@%/;$~_?\+-=]*)#','<a href="$1$2" target="_blank">$2</a>',$str);
}
Merci pour votre aide !