|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : août 2004 Messages : 33 ![]() |
Hello,
je débute avec les regex. j'ai voulu ajouter un espace insécable (  Code :
$string = eregi_replace("([ ]*)([:]{1})", " \\2", $string); ok, ce script fonctionne Cependant je viens de m'apercevoir qu'il altére les urls, normal puisqu'ils/elles contiennent ":" (http://www.developpez.com), dommage car maintenant tous mes liens sont morts (http ://www.developpez.com). je cherche donc à remplacer seulement les ":" qui ne sont pas précédés de "http", je n'ai pas trouver de solution correcte. je pensais que Code :
$string = eregi_replace("([^(http)][ ]*)([:]{1})", " \\4", $string); Avez-vous une idée ? merci pour votre aide. |
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : juin 2003 Messages : 4 893 ![]() |
je pense que le plus efficace est d'abord de protéger les ":" dans les URL en remplaçant par exemple "http://" par "httpPROTECTION_DEUX_POINTS//"
ensuite tu fais le traitement dans ton texte et à la fin tu fais le remplacement inverse pour remettre en place les deux points dans les URL. attention aussi aux URL qui commencent par "https:" ou "ftp:" par exemple
__________________
Modérateur PHP |
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : août 2004 Messages : 33 ![]() |
merci Mathieu.
Houlala je suis vraiment nul de ne pas y avoir pensé, ta solution est facile et fonctionnelle. Merci. Ok je fais ça tout de suite. mais comme j'ai cherché pas mal de temps en vain, je suis preneur de toute solution avec les regex, j'ai soif de comprendre comment ça fonctionne vraiment. merci pour votre aide. je ne tague pas tout de suite le message avec [résolu] dans l'espoir qu'un jedi du regex participe. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com