Php удаление лишних пробелов

Я пытаюсь удалить лишние пробелы из строки следующим образом:

hello     мир

к

привет мир

Кто-нибудь знает, как это сделать в PHP?

Ответы

Ответ 1

С regexp:

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

Если вы также хотите удалить все несколько белых символов, вы можете использовать \s (\ s - белые символы)

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

Ответ 2

$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?"

Посмотрите!

Вы также можете использовать квантор +, потому что он всегда заменяет его . Тем не менее, я нахожу {2,}, чтобы показать ваше намерение более ясным.

Ответ 3

Существует пример того, как удалить лишние пробелы в preg_replace документации

Ответ 4

Не эксперт PHP, но его звуки как работа для REGEX....

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

Опять же, PHP не мой язык, но идея состоит в том, чтобы заменить несколько пробелов одиночными пробелами. \s означает пробел, а + означает один или несколько. g на конце означает сделать это глобально (т.е. Более одного раза).