Bonjour à tous,

voila, j'ai fait un petite regex pour repéré des urls dans un texte, mais après quelques petit test, jais repéré un petit soucis:
j'aimerai pouvoir supprimer les balises html, qui ne font pas partie de l'url xD
Voici tout d'abbord la regex:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
$protocole  = "(https?|ftp|gopher|telnet|file|notes|ms-help)";
$www        = "(www.)?";
$domaine    = "(\w.-)+";
$ext        = "([\w.]{3,8})+";
$ports      = "(:[\d]{2,5})?";
$add        = "(/([\w:#@&%/;$~_?\+-.]+))";
$url        = "((".$protocole."://".$www."".$domaine."".$ext."".$ports."".$add."))";
 
$string     = preg_replace($url, '<a href="$1">$1</a>');

donc je m'explique:

une url de type
http://monsite.soudomaine.com/page/test.php?page=<script>blabla</script>
devrai passée (même si cette url est embétante, c'est le seul exemple que j'ai trouvé comme ça ^^)
par contre, imaginons un bout de texte:
<b>je vous conseil d'allé voir a l'url: http://monsite.soudomaine.com/page/test.php</b>
et bien l'url repérée est
Code : Sélectionner tout - Visualiser dans une fenêtre à part
http://monsite.soudomaine.com/page/test.php</b>
avec le </b> a la fin, qui pause problème.

Si vous avez des idées de solution, je prends avec plaisir
Tout autre conseil pour améliorer cette regex est également le bienvenue.

Merci =)