Enlever tous les epaces blancs entre [ et ] [Regex] - PHP - Programmation
Marsh Posté le 08-05-2007 à 23:27:52
Est ce bien utile
Ou bien la vrai question est :"comment s'affranchir des espaces dans une expression régulière pour gérer du code BB?"
En gros tu veux supprimer ou pourvoir détecter sans t'occuper des blancs?
Marsh Posté le 08-05-2007 à 23:36:01
si c'est enlever pour réellement supprimer, par exemple [lambda= aa bb cc] devient [lambda=aabbcc] alors un simple str_relace suffira...
$string = str_replace(" ","",$string);
Marsh Posté le 09-05-2007 à 00:36:04
leflos5 a écrit : Est ce bien utile |
C'est parceque j'ai deux regex qui géres les url:
Une qui transforme une url http://www.monsite.com en [xxx=http://www.monsite.com]http://www.monsite.com[/url]
Une autre qui transforme [xxx=http://www.monsite.com]http://www.monsite.com[/url] en lien cliquable
Le problème est que si quelqu'un met un espace entre = et http:// mon code ne fonctionne plus. j'obtient exactement ca
[url= http://monsite.com]http://www.monsite.com[/url]. Tiens le forum aussi à ce genre de problème.
J'aimerais donc suprimmer tous les espaces blancs dans mon bbcode pour ne plus avoir ce genre de problèmes. Est ce possible?
PS: j'ai intentionnellement remplacé url par xxx pour des raisons d'affichge.
NewsletTux a écrit : si c'est enlever pour réellement supprimer, par exemple [lambda= aa bb cc] devient [lambda=aabbcc] alors un simple str_relace suffira... |
Un str_replace ne fonctionnera pas puisque je ne veux pas supprimer tout les espaces de ma chaine de caractère mais seulement dans mes balises.
Marsh Posté le 09-05-2007 à 00:39:03
Si c'est ça il suffit que tu prévois un éventuel (ou plusieurs) espace là où ils pourraient se trouver
Ou sinon faut faire plus restrictif et ne pas permettre les espaces et que le code soit invalide et non transformé
Marsh Posté le 09-05-2007 à 00:45:13
J'ai en gros fait ca:
$chaine = preg_replace('#(http://[a-z0-9./_-]+)#i', '$1', $chaine);
$chaine = preg_replace('#\[url=(\s)*(http://(.+))\](.+)\[/url\]#iU', '<a href="$2">$4</a>', $chaine);
Ca fonctionne pour un lien sans tags mais ca ne fonctionne pas pour les liens du genre [xxx=http://monsite.com]cliquez ici[/url].
C'est vraiment un truc de tordus ces regex.
Marsh Posté le 09-05-2007 à 09:15:23
http://www.regular-expressions.info/
Dans tous les cas t obtient un truc qui ressemble a ce que tu vx non ?
Si t as deja le $chaine = preg_replace(...)
Tu le fais *apres* le str_replace ... non ?
Edit: Fo matcher [xxx=http://www.monsite.com]http://www.monsite.com[/url] sans espace ?
La preg me soule des le matin ...
Au plus simple
Code :
|
Ca te sort le 1er "[]" sans espace aucun, ensuite tu passes ta regex
Marsh Posté le 08-05-2007 à 20:55:08
Salut,
Tout est dans le titre. Par exmple comment enlever un espace blanc dans [url= htt://monsite.com] ainsi que dans toutes les balise délimitées par [ et ].
Je n'y arrive pas, si quelqu'un peut m'aider.
Merci.