[PHP]REGEX et liens
Fermé
Utilisateur anonyme
-
16 août 2009 à 22:16
Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 - 17 août 2009 à 01:44
Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 - 17 août 2009 à 01:44
A voir également:
- [PHP]REGEX et liens
- Easy php - Télécharger - Divers Web & Internet
- Vérificateur de liens - Guide
- Telecharger liens direct - Accueil - Outils
- Ou trouver les liens copiés sur android - Guide
- Liens copiés ✓ - Forum Google Chrome
3 réponses
Groarh
Messages postés
682
Date d'inscription
vendredi 1 août 2008
Statut
Membre
Dernière intervention
28 juin 2015
185
16 août 2009 à 22:48
16 août 2009 à 22:48
Salut !
Dans ta Regexp il s'agit de regarder si la chaîne concernée n'est pas précédée de (au moins) « href=" » pour la partie intérieure au tag, et de « > »pour la partie encadrée. Ça ressemble bigrement au principe des « assertions » (https://www.php.net/manual/fr/regexp.reference.assertions.php).
Si je ne m'abuse, ceci devrait marcher :
Tiens-moi au courant ;)
Edit : Je suppose que les [] autour de http sont dûs à la correction automatique de ce forum :S
Dans ta Regexp il s'agit de regarder si la chaîne concernée n'est pas précédée de (au moins) « href=" » pour la partie intérieure au tag, et de « > »pour la partie encadrée. Ça ressemble bigrement au principe des « assertions » (https://www.php.net/manual/fr/regexp.reference.assertions.php).
Si je ne m'abuse, ceci devrait marcher :
$text = preg_replace('#(?<!href=")(?<!>)http://[a-z0-9._/-]+#i', '<a href="$0">$0</a>', $text);
Tiens-moi au courant ;)
Edit : Je suppose que les [] autour de http sont dûs à la correction automatique de ce forum :S
Utilisateur anonyme
17 août 2009 à 01:27
17 août 2009 à 01:27
Merci beaucoup Groarh !!
Ca fonctionne super comme ça :)
(merci pour le lien sur php.net, je ne savaient pas ce qu'était les assertions)
(Les crochets sont bien dûs à la correction automatique du forum)
Ca fonctionne super comme ça :)
(merci pour le lien sur php.net, je ne savaient pas ce qu'était les assertions)
(Les crochets sont bien dûs à la correction automatique du forum)
Groarh
Messages postés
682
Date d'inscription
vendredi 1 août 2008
Statut
Membre
Dernière intervention
28 juin 2015
185
17 août 2009 à 01:44
17 août 2009 à 01:44
Attention, la regex que je t'ai donnée n'est pas parfaite. S'il y a des caractères entre l'adresse et la balise de gauche, ça ne marchera pas, par exemple avec ça :
Il y a moyen de filtrer ça mais ça va faire une regex beaucoup plus longue. Il s'agit de gérer (c'est rare, mais possible) des liens postés avec déjà leurs balises, qui commencent par http, et qui ont des caractères au mauvais endroit…
Si tu y tiens je te la fais ;)
<a href="http://example.com/"> http://example.com/</a> (il y a un espace)
Il y a moyen de filtrer ça mais ça va faire une regex beaucoup plus longue. Il s'agit de gérer (c'est rare, mais possible) des liens postés avec déjà leurs balises, qui commencent par http, et qui ont des caractères au mauvais endroit…
Si tu y tiens je te la fais ;)