Pour codeur php ... purge de caractere espaces ...
20 messages
• Page 1 sur 2 • 1, 2
-

Zecat - WRInaute accro

- Messages: 12002
- Inscription: 1 Mar 2005
Pour codeur php ... purge de caractere espaces ...
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é
(en fait on a jamsi commencer à se causer
)
Note : il se peut que des fois il n'y ait des epsace que devant ou que derrière ou devant et derriere le :
$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é
Note : il se peut que des fois il n'y ait des epsace que devant ou que derrière ou devant et derriere le :
-

Netek - WRInaute discret

- Messages: 90
- Inscription: 5 Aoû 2010
Re: Pour codeur php ... purge de caractere espaces ...
Ceci devrait fonctionner :
- Code: Tout sélectionner
list($chaine1,$chaine2) = explode(':',$var);
$chaine1 = trim($chaine1);
$chaine2 = trim($chaine2);
$var2 = $chaine1.':'.$chaine2;
-

spout - WRInaute accro

- Messages: 4382
- Inscription: 14 Mai 2003
Re: Pour codeur php ... purge de caractere espaces ...
Je viens de tester la solution de netek, ça fonctionne:
Affiche: aaaaaaa:xxxxx zzzzz wwwww
list() et explode() c'est de la balle
- 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
-

seebz - WRInaute impliqué

- Messages: 808
- Inscription: 15 Avr 2007
Re: Pour codeur php ... purge de caractere espaces ...
P'têtre ça :
- Code: Tout sélectionner
$str = preg_replace('`[\s]*:[\s]*`', ':', $str);
-

queldomaine.com - WRInaute discret

- Messages: 99
- Inscription: 9 Nov 2009
Re: Pour codeur php ... purge de caractere espaces ...
Ou ceci avec une expression régulière :
- Code: Tout sélectionner
echo preg_replace('/^([^ ]+) *: *([^ ]+) *([^ ]+) *([^ ]+)$/', '\\1:\\2 \\3 \\4', $var);
-

fandecine - Modérateur

- Messages: 2047
- Inscription: 2 Avr 2005
Re: Pour codeur php ... purge de caractere espaces ...
plus simple et plus rapide que les regexp
imparrable
- Code: Tout sélectionner
$var=str_replace(" "," ",$var);
$var=str_replace(" "," ",$var);
imparrable
-

Zecat - WRInaute accro

- Messages: 12002
- Inscription: 1 Mar 2005
Re: Pour codeur php ... purge de caractere espaces ...
fandecine a écrit:plus simple et plus rapide que les regexp
- Code: Tout sélectionner
$var=str_replace(" "," ",$var);
$var=str_replace(" "," ",$var);
imparrable
heu t'es sur ... si y a 20 espaces devant le : ?
-

fandecine - Modérateur

- Messages: 2047
- Inscription: 2 Avr 2005
Re: Pour codeur php ... purge de caractere espaces ...
si tu veux obtenir [space]:[space] oui je suis sur, si tu ne veux pas d'espace avant et après les : tu rajoute
testes et tu verra
- Code: Tout sélectionner
$var=str_replace(" : ",":",$var);
testes et tu verra
-

Zecat - WRInaute accro

- Messages: 12002
- Inscription: 1 Mar 2005
Re: Pour codeur php ... purge de caractere espaces ...
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
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

- Messages: 12002
- Inscription: 1 Mar 2005
Re: Pour codeur php ... purge de caractere espaces ...
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 ...
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).
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).
20 messages
• Page 1 sur 2 • 1, 2
Lectures recommandées sur ce thème :
- Recherche codeur php mysql
- recherche une fonction php pour chaine de caractere ! help:s
- Dédoublage des espaces avec une regex php
- Titre dans l'url. Remplacement des espaces et autres en php
- Enlever les espaces à la fin d'une chaine de caractèr en php
- Les chaines de caractère en php, SVP
- PHP Formulaire - probleme caractere euro
- Contrôle d'une chaine de caractère en PHP ?
- Php fonction sur chaine de caractere
- Compter le nombre de caractère que retourne un fichier .php
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
