Bonjour à tous,
J'essais depuis un moment de trouver une REGEX permettant de sélectionner dans un code HTML les URLs non contenu dans les balise HTML.
Le but étant de l'utiliser dans un preg_replace de PHP pour trouver les URLs isolées d'une page HTML et les entourées d'une balise <a> pour les faire devenir cliquables .
Voici un exemple de code que je veux traiter :
Le résultat que je souhaite obtenir :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 http://www.mon-url-seule-1.com <div style="backgroun-image:url('http://www.monsite.com')"> <a href="http://www.monsite.com"> <img src="http://www.monsite.com"> </a> <br />http://www.mon-url-seule2.com<br /> <div> http://www.mon-url-seule-3.com </div> </div>
Dans tous mes essais, je ne suis pas arrivé à sélectionner uniquement les URL seules...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <a href="http://www.mon-url-seule-1.com">http://www.mon-url-seule-1.com</a> <div style="backgroun-image:url('http://www.monsite.com')"> <a href="http://www.monsite.com"> <img src="http://www.monsite.com"> </a> <br /><a href="http://www.mon-url-seule2.com">http://www.mon-url-seule2.com</a><br /> <div> <a href="http://www.mon-url-seule-3.com">http://www.mon-url-seule-3.com</a> </div> </div>
Voici ou j'en suis dans ma REGEX : '/(?<!=\")(((f|ht){1}tp(s?):\/\/)[\w-@:%_\+.~#?&;\/\/=]+)/'
Cette partie fonctionne très bien, mais sélectionne toute les URLs, également celle déjà contenues dans les balises... /(((f|ht){1}tp(s?):\/\/)[\w-@:%_\+.~#?&;\/\/=]+)/
Et celle ci fait tout capoter... : (?<!=\")
Merci d'avance pour votre aide, je ne suis pas loin de ne plus avoir assez de cheveux pour continuer de me les arracher lol
edit : celle ci ne fonctionne pas nomplus ... '/([^\=]"?\s?((f|ht){1}tp(s?):\/\/)[\w-@:%_\+.~#?&;\/\/=]+)/'
Partager