Patrick
Patrick

Reputation: 4905

php removing excess whitespace

I'm trying to remove excess whitespace from a string like this:

hello        world

to

hello world

Anyone has any idea how to do that in PHP?

Upvotes: 14

Views: 10764

Answers (4)

David W.
David W.

Reputation: 107040

Not a PHP expert, but his sounds like a job for REGEX....

<?php
$string = 'Hello     World     and Everybody!';
$pattern = '/\s+/g';
$replacement = ' ';
echo preg_replace($pattern, $replacement, $string);
?>

Again, PHP is not my language, but the idea is to replace multiple whitespaces with single spaces. The \s stands for white space, and the + means one or more. The g on the end means to do it globally (i.e. more than once).

Upvotes: 0

David Gelhar
David Gelhar

Reputation: 27900

There is an example on how to strip excess whitespace in the preg_replace documentation

Upvotes: 0

alex
alex

Reputation: 490153

$str = 'Why   do I
          have  so much white   space?';

$str = preg_replace('/\s{2,}/', ' ', $str);

var_dump($str); // string(34) "Why do I have so much white space?"

See it!

You could also use the + quantifier, because it always replaces it with a . However, I find {2,} to show your intent clearer.

Upvotes: 4

Vincent Savard
Vincent Savard

Reputation: 35917

With a regexp :

preg_replace('/( )+/', ' ', $string);

If you also want to remove every multi-white characters, you can use \s (\s is white characters)

preg_replace('/(\s)+/', ' ', $string);

Upvotes: 28

Related Questions