Comment puis-je strip / supprimer tous espaces d'un chaîne de caractères en PHP ?
J'ai un chaîne de caractères comme $string = "this is my string";
La sortie devrait être "thisismystring"
Comment puis-je faire ça ?
Comment puis-je strip / supprimer tous espaces d'un chaîne de caractères en PHP ?
J'ai un chaîne de caractères comme $string = "this is my string";
La sortie devrait être "thisismystring"
Comment puis-je faire ça ?
Voulez-vous dire seulement les espaces ou tous les espaces blancs ?
Pour les espaces seulement, utilisez str_replace :
$string = str_replace(' ', '', $string);
Pour tous les espaces blancs (y compris les tabulations et les fins de ligne), utilisez preg_replace :
$string = preg_replace('/\s+/', '', $string);
(De ici ).
1er, vous n'avez pas besoin de la +
. $string = preg_replace('/\s/', '', $string);
devrait fonctionner correctement. La seule chose qui ne fonctionne pas pour moi, ce sont les espaces insécables. J'ai dû utiliser ceci : $string = preg_replace('~\x{00a0}~','',$string);
pour les supprimer. Merci à cette réponse de stackoverflow : stackoverflow.com/a/12838189/631764
Question d'un nouveau venu, par intérêt : Quelle est la différence entre space
et whitespace
? N'est-ce pas la même chose ?
@EchtEinfachTV l'espace est le caractère d'espace régulier entre les mots, l'espace blanc est tout type d'espace dans le texte : espace régulier, nouvelle ligne, tabulation, etc.
Si vous voulez supprimer tous les espaces blancs :
$str = preg_replace('/\s+/', '', $str);
Voir le 5e exemple sur la documentation de preg_replace . (Notez que j'ai initialement copié cela ici).
Edit : les commentateurs ont souligné, et ont raison, que str_replace
est meilleur que preg_replace
si vous souhaitez simplement supprimer le caractère espace. La raison d'utiliser preg_replace
serait de supprimer tous les espaces blancs (y compris les tabulations, etc.).
" Si vous n'avez pas besoin de règles de remplacement fantaisistes (comme les expressions régulières), vous devriez toujours utiliser cette fonction [ str_replace
] au lieu de ereg_replace()
ou preg_replace()
."
Je ne suggérerais pas l'utilisation d'expressions régulières pour la simple suppression des espaces. str_replace pour les espaces uniquement, preg_replace pour tous les espaces blancs.
@Johannes & MasterPeter : D'accord, mais le PO a laissé un commentaire sur une autre réponse qu'il veut dépouiller l'espace blanc.
str_replace fera l'affaire ainsi
$new_str = str_replace(' ', '', $old_str);
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
0 votes
Voir aussi : stackoverflow.com/questions/1279774/
2 votes
Techniquement, il s'agit d'une question légèrement différente de la question du doublon. Parfois, vous pouvez vouloir supprimer les espaces sans tabulation.
1 votes
Voici le moyen le plus court de le faire, au cas où vous auriez besoin de gagner au Code Golf :
strtr($string,[' '=>'']);
0 votes
Pour ne dépouiller que le début et la fin, utilisez la fonction
trim
fonctions : php.net/trim