php Замена нескольких пространств одним пространством

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

 ereg_replace("[ \t\n\r]+", " ", $string); 

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

Используйте 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] . Несколько пробелов будут заменены на одно пространство.