php заменяет несколько пробелов одним пробелом

Я пытаюсь заменить несколько пробелов на один пробел. Когда я использую ereg_replace, Я получаю ошибку о том, что она устарела.

ereg_replace("[ tnr]+", " ", $string);

есть ли идентичная замена для него. Мне нужно заменить несколько " " пробелы и несколько nbsp пробелы с одним пробелом.

3 ответов


использовать preg_replace() и вместо [ \t\n\r] использовать \s:

$output = preg_replace('!\s+!', ' ', $input);

С Справочник По Основному Синтаксису Регулярных Выражений:

\d, \w и \S

Стенография классы символов цифры, символы слов (буквы, цифры и подчеркивания), и пробелы (пробелы, вкладки и строки щебень.) Смогите быть использовано внутрь и вне классов персонажей.


preg_replace("/[[:blank:]]+/"," ",$input)

$output = preg_replace('/\s+/', ' ',$input);

\s-сокращение от [ \t\n\r]. Несколько пробелов будут заменены одним пробелом.