PHP用一个空间replace多个空间

我试图用一个空格replace多个空格。 当我使用ereg_replace ,我得到一个关于它被弃用的错误。

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

有相同的替代品吗? 我需要用一个空格replace多个" "空格和多个空白空格。

使用preg_replace()而不是[ \t\n\r]使用\s

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

从正则expression式基本语法参考 :

\ d,\ w和\ s

速记字符类匹配数字,单词字符(字母,数字和下划线)和空格(空格,制表符和换行符)。 可以在字符类内部和外部使用。

 preg_replace("/[[:blank:]]+/"," ",$input) 
 $output = preg_replace('/\s+/', ' ',$input); 

\ s是[ \t\n\r]简写。 多个空间将被replace为单个空间。