Supprimer les espaces dans une chaîne

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Supprimer les espaces dans une chaîne

Re: Supprimer les espaces dans une chaîne

par telnes » 30 avr. 2010, 15:15

a pardon j'avais pas lu :/ je croyais qu'il voulais juste les blancs !!

dommage

Re: Supprimer les espaces dans une chaîne

par stealth35 » 30 avr. 2010, 14:46

oui mais tu comptes faire comment avec str_replace ?

Re: Supprimer les espaces dans une chaîne

par Dr@ke » 30 avr. 2010, 14:46

Tu le fais comment avec str_replace(), telnes?

Re: Supprimer les espaces dans une chaîne

par telnes » 30 avr. 2010, 14:21

Re: Supprimer les espaces dans une chaîne

par blof » 30 avr. 2010, 05:17

Bonjour,
<?php
$ligne = "abc 6 221,26 1 343,25 F";

$ligne2 = preg_replace('/([^,].\d) /', '$1', $ligne);

echo $ligne2;
?>
=> http://lumadis.be/regex/tuto_pcre.php <=

Supprimer les espaces dans une chaîne

par jacfev » 29 avr. 2010, 20:25

Bonjour,
Pb avec cette petite routine (j'ai laissé les commentaires pour mieux de
compréhension).

ALGO: Lecture d'un caractère,
si ce caractère est un espace et si le caractère précédent est un chiffre
et si le 3ème caractère précédent n'est pas une virgule,
alors supprimer ce caractère.
Retourner la chaîne corrigée

Je dois obtenir la même chaine avec suppression des espaces des mille:
$ligne2 = "abc 6221,26 1343,25 F";

Code : Tout sélectionner

<?php $ligne = "abc 6 221,26 1 343,25 F"; $ligne2 = ""; $nb_car = strlen($ligne); echo "<B>AVANT: </B><BR> $ligne<BR>"; echo "Nbe de caractères de la ligne AVANT: ", $nb_car, "<BR>"; echo "\$ligne (dans boucle for)= <BR>"; for ($i=0; $i <= ($nb_car-1); $i++) { $car = $ligne[$i]; //parcours la ligne pas à pas echo $car; //réaffiche pas à pas la ligne d'origine //le test n'est nécessaire qu'à partir du 4ème car de la ligne if ($i > 3) { //pour pouvoir tester le car $i-3 //si le car lu courant est un espace // et le car précédent est un chiffre // et si le 3e car précédent n'est pas une virgule if (($car = " ") && (is_numeric($ligne[$i-1])) && ($ligne[$i-3] != ",")) { //$ligne2 .= chr(0); //alors on n'ajoute rien à $ligne2 } else { //on garde le car lu courant $ligne2 .= $car; } } else { //$i<=3 : on garde le car lu courant $ligne2 .= $car; } } $nb_car2 = strlen($ligne2); echo "<BR>Nbe de caractères APRES: ", $nb_car2, "<BR>"; echo "APRES= <BR>$ligne2"; ?>
Si vous avez un peu de temps ?
Cordialement jf.