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

Publié le 6 juin 2018

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 l'article vous a aidé, vous pouvez m'offrir un café !

A lire ensuite

Cela pourrait vous intéresser

Quelques contenus proches du sujet pour prolonger la lecture.

13 mai 2025 Fonctions & snippets

PHP : Calculer un écart type

Tout est parti d’une demande d’un client : il voulait analyser les résultats d’un questionnaire de satisfaction et m’a parlé de “calculer un écart…

Lire la suite

Laisser un commentaire

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

Un café pour le blog ? Vous aimez ce que vous lisez ici ? Offrez-moi un café.