Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
513 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [Regex]Enlever tous les epaces blancs entre [ et ]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Regex]Enlever tous les epaces blancs entre [ et ]

n°1556993
Iori2004
Posté le 08-05-2007 à 20:55:08  profilanswer
 

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.

mood
Publicité
Posté le 08-05-2007 à 20:55:08  profilanswer
 

n°1557082
leflos5
On est ou on est pas :)
Posté le 08-05-2007 à 23:27:52  profilanswer
 

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?

n°1557085
NewsletTux
<Insérez ici votre vie />
Posté le 08-05-2007 à 23:36:01  profilanswer
 

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);

n°1557101
Iori2004
Posté le 09-05-2007 à 00:36:04  profilanswer
 

leflos5 a écrit :

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?


 
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...
$string = str_replace(" ","",$string);


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.

n°1557103
leflos5
On est ou on est pas :)
Posté le 09-05-2007 à 00:39:03  profilanswer
 

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é ;)

n°1557104
Iori2004
Posté le 09-05-2007 à 00:45:13  profilanswer
 

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.

n°1557172
supermofo
Hello World !
Posté le 09-05-2007 à 09:15:23  profilanswer
 

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 :
  1. // $str = '[xxx= http://www.monsite.com]texte[/url]'
  2. // retour = [xxx= http://www.monsite.com] propre
  3. function segment1($str) {
  4. $tab = explode('=', substr($str, 0, strpos($str, ']')) );
  5. foreach($tab as $seg) {
  6.  $rez[] = htmlspecialchars( str_replace(array(' ', '[', ']'), '', $seg));
  7. }
  8. $chaine = '[' . implode('=', $rez) . ']';
  9. return $chaine;
  10. }
 

Ca te sort le 1er "[]" sans espace aucun, ensuite tu passes ta regex

  


Message édité par supermofo le 09-05-2007 à 22:31:53

---------------
Echange de 3000+ liens PR 3 -> 5, me pm urgent !

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [Regex]Enlever tous les epaces blancs entre [ et ]

 

Sujets relatifs
enlever la barre d'outil des fenetre de mon siteBash/Shellscript, aide regex/sed/tr
Comment enlever le cadre bleu d'une image-lien même avec border ?[C] parser les entêtes de mail... regex ?
Regex particulière ? (newbie inside)enlever PHPSESSID=xxxxxxxxxxxx de mon url
[JAVA] Charger un fichier texte en mémoire dans un Stringregex qui ne marche pas
[Réglé] Problème Regex avec c/c d'un tableaucombler les blancs dans une chaine de caractere
Plus de sujets relatifs à : [Regex]Enlever tous les epaces blancs entre [ et ]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR