|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre chevronné
![]() Jérémy Étudiant Inscription : mars 2005 Messages : 634 ![]() |
![]() Voilà j'ai encore un petit problème avec les expressions régulières. J'ai un script pour faire automatiquement des liens cliquables. Jusque là pas de problème, mais je donne aussi la possibilité de faire des lien bbocde comme [ url =x]lien[/url]. L'url est donc parsée deux fois à cause du http://. Pour le moment j'ai le code suivant : Code :
Code :
$in = array('`([^\]=](?:https?|ftp)://\S+[[:alnum:]]/?)`si', '`((?<!//)(www\.\S+[[:alnum:]]/?))`si');
|
||
|
|
00
|
|
|
#2 |
|
Membre à l'essai
![]() Inscription : décembre 2005 Messages : 22 ![]() |
Salut,
Pour éviter de retraiter les adresses à l'intérieur d'un [url = ], tu pourrais par exemple utiliser ça, en début de pattern, pour la fonction qui rend les liens automatiquement cliquables : |
|
|
00
|
|
|
#3 | ||
|
Membre chevronné
![]() Jérémy Étudiant Inscription : mars 2005 Messages : 634 ![]() |
J'ai essayé d'adapter mon code avec celui de Hansolo. Ca à l'air de fonctionner, mais lorsque le lien est au milieu du texte, la regex supprime un espace avant le lien, et le lien est collé au texte à gauche. Quelqu'un voit où est l'erreur ?
Code :
|
||
|
|
00
|
|
|
#4 |
|
Membre à l'essai
![]() Inscription : décembre 2005 Messages : 22 ![]() |
Il faut garder les paranthèses du code donné plus haut et utiliser les paranthèses en début de remplacement.
Code :
$out = array('$1<a href="$2">$2</a>', '<a href="http://$1">$1</a>'); |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com