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:
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
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 ![:)](https://www.developpez.net/forums/images/smilies/icon_smile.gif)
Tout autre conseil pour améliorer cette regex est également le bienvenue.
Merci =)
Partager