218

我正在尝试用一个空格替换多个空格。当我使用 时ereg_replace,我收到一个关于它被弃用的错误。

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

是否有相同的替代品。我需要用一个空格替换多个" "空格和多个nbsp空格。

4

3 回答 3

447

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

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

来自正则表达式基本语法参考

\d、\w 和 \s

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

于 2010-03-03T03:25:18.267 回答
77
$output = preg_replace('/\s+/', ' ',$input);

\s是 的简写[ \t\n\r]。多个空格将替换为单个空格。

于 2013-09-19T06:24:25.747 回答
50
preg_replace("/[[:blank:]]+/"," ",$input)
于 2010-03-03T03:29:05.717 回答