Pour codeur php ... purge de caractere espaces ...


Zecat
WRInaute accro
WRInaute accro
 
Messages: 12002
Inscription: 1 Mar 2005

Pour codeur php ... purge de caractere espaces ...

Message le Ven Aoû 06, 2010 19:53

Probleme posé :

$var="aaaaaaa : xxxxx zzzzz wwwww"

Donc pour résumer :

Une expression
Puis une serie d'espaces en nombre non connu
puis un :
Puis une serie d'espaces en nombre non connu
puis une autre expression

But : ramener la chose à :

$var2="aaaaaaa:xxxxx zzzzz wwwww"

Bien sur je peux boucler sur les octets un à un ou faire des str-replace dans un while mais bon on doit pouvoir faire plus propre et efficace (regex ?). Mais comme les regex et moi on est faché :mrgreen: (en fait on a jamsi commencer à se causer :roll: )

Note : il se peut que des fois il n'y ait des epsace que devant ou que derrière ou devant et derriere le :


spout
WRInaute accro
WRInaute accro
 
Messages: 4382
Inscription: 14 Mai 2003

Re: Pour codeur php ... purge de caractere espaces ...

Message le Ven Aoû 06, 2010 19:59

Edit: ma solution n'est pas bonne
Dernière édition par spout le Ven Aoû 06, 2010 20:10, édité 1 fois.


Netek
WRInaute discret
WRInaute discret
 
Messages: 90
Inscription: 5 Aoû 2010

Re: Pour codeur php ... purge de caractere espaces ...

Message le Ven Aoû 06, 2010 20:08

Ceci devrait fonctionner :

Code: Tout sélectionner
list($chaine1,$chaine2) = explode(':',$var);
$chaine1 = trim($chaine1);
$chaine2 = trim($chaine2);
$var2 = $chaine1.':'.$chaine2;


spout
WRInaute accro
WRInaute accro
 
Messages: 4382
Inscription: 14 Mai 2003

Re: Pour codeur php ... purge de caractere espaces ...

Message le Ven Aoû 06, 2010 20:12

Je viens de tester la solution de netek, ça fonctionne:
Code: Tout sélectionner
$var = "aaaaaaa : xxxxx zzzzz wwwww";
list($chaine1,$chaine2) = explode(':',$var);
$chaine1 = trim($chaine1);
$chaine2 = trim($chaine2);
$var2 = $chaine1.':'.$chaine2;
echo $var2;

Affiche: aaaaaaa:xxxxx zzzzz wwwww

list() et explode() c'est de la balle ;)


Netek
WRInaute discret
WRInaute discret
 
Messages: 90
Inscription: 5 Aoû 2010

Re: Pour codeur php ... purge de caractere espaces ...

Message le Ven Aoû 06, 2010 20:14

Oui j'adore aussi m'en servir :D


seebz
WRInaute impliqué
WRInaute impliqué
 
Messages: 808
Inscription: 15 Avr 2007

Re: Pour codeur php ... purge de caractere espaces ...

Message le Ven Aoû 06, 2010 20:15

P'têtre ça :
Code: Tout sélectionner
$str = preg_replace('`[\s]*:[\s]*`', ':', $str);


queldomaine.com
WRInaute discret
WRInaute discret
 
Messages: 99
Inscription: 9 Nov 2009

Re: Pour codeur php ... purge de caractere espaces ...

Message le Ven Aoû 06, 2010 20:22

Ou ceci avec une expression régulière :

Code: Tout sélectionner
echo preg_replace('/^([^ ]+) *: *([^ ]+) *([^ ]+) *([^ ]+)$/', '\\1:\\2 \\3 \\4', $var);


fandecine
Modérateur
Modérateur
 
Messages: 2047
Inscription: 2 Avr 2005

Re: Pour codeur php ... purge de caractere espaces ...

Message le Ven Aoû 06, 2010 20:33

plus simple et plus rapide que les regexp

Code: Tout sélectionner
$var=str_replace("  "," ",$var);
$var=str_replace("  "," ",$var);


imparrable :mrgreen:


Zecat
WRInaute accro
WRInaute accro
 
Messages: 12002
Inscription: 1 Mar 2005

Re: Pour codeur php ... purge de caractere espaces ...

Message le Ven Aoû 06, 2010 21:32

fandecine a écrit:plus simple et plus rapide que les regexp

Code: Tout sélectionner
$var=str_replace("  "," ",$var);
$var=str_replace("  "," ",$var);


imparrable :mrgreen:

heu t'es sur ... si y a 20 espaces devant le : ?


fandecine
Modérateur
Modérateur
 
Messages: 2047
Inscription: 2 Avr 2005

Re: Pour codeur php ... purge de caractere espaces ...

Message le Ven Aoû 06, 2010 21:39

si tu veux obtenir [space]:[space] oui je suis sur, si tu ne veux pas d'espace avant et après les : tu rajoute
Code: Tout sélectionner
$var=str_replace(" : ",":",$var);


testes et tu verra :wink:


Zecat
WRInaute accro
WRInaute accro
 
Messages: 12002
Inscription: 1 Mar 2005

Re: Pour codeur php ... purge de caractere espaces ...

Message le Ven Aoû 06, 2010 21:45

fandecine a écrit:si tu veux obtenir [space]:[space] oui je suis sur, si tu ne veux pas d'espace avant et après les : tu rajoute
Code: Tout sélectionner
$var=str_replace(" : ",":",$var);


testes et tu verra :wink:

arf il a raison le bougre ... tu m expliques ? c'ets comme si str_replace bossait de façon recursive incluant dejà un while ! la deuxieme lame servant juste à la finition ...

Edit : heu non desolé ca marche pas ... c'ets bien ce que je pensais :

Code: Tout sélectionner
<?php
$var="aaaaaa***************:***************bbbbb ccccc ddddd";
$var=str_replace("**","*",$var);
echo ($var."<br>");
$var=str_replace("**","*",$var);
echo ($var."<br>");
?>


j'ai mis des etoiles pour qu'on voit mieux ... et a chaque passe il divise simplement le nombre de ** par deux ...
Avec des blancs c'est trompeur, on peu avoir l 'impression que c'est ok mais si on regarde le source de la page avec les echo, on voit que non ...


Zecat
WRInaute accro
WRInaute accro
 
Messages: 12002
Inscription: 1 Mar 2005

Re: Pour codeur php ... purge de caractere espaces ...

Message le Ven Aoû 06, 2010 21:55

je vais garder la solution avec les trim (je ne connaissais pas ces 3 commandes) et comme de toute façon ensuite je decoupai deja sur le : ltrim et rtrim sont mes amis ... :wink:

Note : je viens de re verifier ta soluce fandecine, et comme c'est previsible ca fonctionne pas (ca reduit de moitié a chaque passe simplement).


seebz
WRInaute impliqué
WRInaute impliqué
 
Messages: 808
Inscription: 15 Avr 2007

Re: Pour codeur php ... purge de caractere espaces ...

Message le Ven Aoû 06, 2010 22:06

et ma solution, ca convient pas ?


Netek
WRInaute discret
WRInaute discret
 
Messages: 90
Inscription: 5 Aoû 2010

Re: Pour codeur php ... purge de caractere espaces ...

Message le Ven Aoû 06, 2010 22:12

Youpi j'ai gagné :p ^^


Zecat
WRInaute accro
WRInaute accro
 
Messages: 12002
Inscription: 1 Mar 2005

Re: Pour codeur php ... purge de caractere espaces ...

Message le Ven Aoû 06, 2010 22:12

j'ai pas regardé. trim me va tres bien :wink:

Pour codeur php ... purge de caractere espaces ...

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité