Problème expression régulière
Wild_Pony
-
Ssylvainsab Messages postés 2892 Statut Modérateur -
Ssylvainsab Messages postés 2892 Statut Modérateur -
Bonjour,
J'ai testé sur mon site une expression régulière me permettant de transformer une url en lien cliquable dans mes textes.
Elle marche plutot bien mais bug lorsque j'insère une balise <br> après, car le lien est faussé.
Voici la fonction contenant l'expression :
et voici un exemple du code généré par la fonction quand une adresse est suivie d'un retour à la ligne :
D'après ce que je comprends, la balise <br> est comptée comme faisant partie de l'adresse, ce qui explique le "%3Cbr" et le "/> ", mais pas moyen de corriger le problème...
La solution je pense est de spécifier dans l'expression régulière l'exclusion de la balise, mais je n'ai pas réussi.
Toute aide sera la bienvenue, merci beaucoup.
J'ai testé sur mon site une expression régulière me permettant de transformer une url en lien cliquable dans mes textes.
Elle marche plutot bien mais bug lorsque j'insère une balise <br> après, car le lien est faussé.
Voici la fonction contenant l'expression :
function adresse_internet($url)
{
$in=array(
'`((?:https?|ftp)://\S+:alnum:/?)`si',
'`((?<!//)(www\.\S+:alnum:/?))`si'
);
$out=array(
'<a href="$1" target = "_blank">$1</a>',
'<a href="http://$1" target = "_blank">$1</a>'
);
return = preg_replace($in,$out,$url);
}
et voici un exemple du code généré par la fonction quand une adresse est suivie d'un retour à la ligne :
<a href="http://www.glennferon.com/portfolio1/index.html%3Cbr" target="_blank">http://www.glennferon.com/portfolio1/index.html<br></a> />
D'après ce que je comprends, la balise <br> est comptée comme faisant partie de l'adresse, ce qui explique le "%3Cbr" et le "/> ", mais pas moyen de corriger le problème...
La solution je pense est de spécifier dans l'expression régulière l'exclusion de la balise, mais je n'ai pas réussi.
Toute aide sera la bienvenue, merci beaucoup.
A voir également:
- Problème expression régulière
- Expression écrite cm1 cm2 télécharger gratuit - Télécharger - Éducatifs
- Microsoft expression encoder - Télécharger - Divers Utilitaires
- Expression de recherche - Guide
- Avoir du ping expression ✓ - Forum jeux en ligne
- T'as du ping expression - Forum Réseau
1 réponse
Bonsoir.
Je ne comprends pas trop comment sont formées tes regex, mais si ca peut t'aider j'ai fait une regex qui transforme les liens en url cliquables :
J'en ai aussi fait une qui remplace
<lien="......">le texte du lien</lien>
par
<a href="....">le texte du lien</lien>
Si ca t'interesse.
a plus
Je ne comprends pas trop comment sont formées tes regex, mais si ca peut t'aider j'ai fait une regex qui transforme les liens en url cliquables :
$lien='#(https?|ftp)://((w{3}\.)?([-:\w\./_?=&\#~@]+))#';
$message=preg_replace($lien,'<a href="$1://$2">$1://$2</a>',$message);
J'en ai aussi fait une qui remplace
<lien="......">le texte du lien</lien>
par
<a href="....">le texte du lien</lien>
Si ca t'interesse.
a plus