Supprimer les espaces multiples d’une chaine de caractère

Il arrive qu’on doive manipuler des chaînes de caractères dans lesquels plusieurs espaces consécutifs se sont glissés, comme dans cette chaîne :

[pastacode lang= »php » manual= »%24str%20%3D%20’Bonjour%20%20%20%20%20%20%20Toto%20!’%20%3B%20%0A » message= » » highlight= » » provider= »manual »/]

Cela devient embêtant si l’on doit traiter cette chaine de caractère au caractère près. Imaginons par exemple que nous voulons remplacer tous les « Bonjour Toto » d’une chaîne par des « Bonjour Tata », str_replace() ne retournera rien car il ne trouvera pas la chaine telle que demandée :

[pastacode lang= »php » manual= »%24str%20%3D%20’Bonjour%20%20%20%20%20%20%20Toto%20!’%20%3B%20%0Aecho%20str_replace(‘Bonjour%20Toto%20!’%2C%20’Bonjour%20Tata%20!’%2C%20%24str)%20%3B%20%0A%2F%2F%20Retourne%20%3A%20’Bonjour%20%20%20%20%20%20%20Toto%20!' » message= » » highlight= » » provider= »manual »/]

Mais avec une expression régulière, nous pouvons demander à ce que tous les espaces multiples soient transformés en un seul espace.

C’est ce que nous allons faire avec la fonction preg_replace() qui recherche et remplace par une expression rationnelle standard :

[pastacode lang= »php » manual= »%24str%20%3D%20’Bonjour%20%20%20%20%20%20%20Toto%20!’%20%3B%20%0A%24str%20%3D%20preg_replace(‘%2F%5Cs%2B%2F’%2C%20’%20’%2C%20%24str)%3B%0Aecho%20str_replace(‘Bonjour%20Toto%20!’%2C%20’Bonjour%20Tata%20!’%2C%20%24str)%20%3B%20%0A%2F%2F%20Retourne%20%3A%20’Bonjour%20Tata%20!' » message= » » highlight= »2″ provider= »manual »/]

 

 


Si cet article "Supprimer les espaces multiples d’une chaine de caractère" vous a aidé, si vous avez des questions ou des améliorations à proposer, n'hésitez pas à me laisser un commentaire en bas de page !
Charlie Stram,
Développeur web freelance

Vous aimerez aussi...

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *