我得到$row['message']从一个MySQL数据库,我需要删除所有的空白,如\n \t等。

$row['message'] = "This is   a Text \n and so on \t     Text text.";

应格式化为:

$row['message'] = 'This is a Text and so on Text text.';

我试着:

 $ro = preg_replace('/\s\s+/', ' ',$row['message']);
 echo $ro;

但它不删除\n或\t,只删除单个空格。有人能告诉我怎么做吗?


当前回答

preg_replace('/[\s]+/mu', ' ', $var);

\s已经包含制表符和新行,所以上面的正则表达式似乎足够了。

其他回答

你所需要的就是像下面这样运行它:

echo preg_replace('/\s{2,}/', ' ', "This is   a Text \n and so on \t     Text text."); // This is a Text and so on Text text.
$str='This is   a Text \n and so on Text text.';
print preg_replace("/[[:blank:]]+/"," ",$str);

这将用一个选项卡替换多个选项卡

preg_replace("/\s{2,}/", "\t", $string);
preg_replace('/(\s\s+|\t|\n)/', ' ', $row['message']);

这将用一个空格替换所有制表符、换行符以及多个空格、制表符和换行符的所有组合。

preg_replace('/[\s]+/mu', ' ', $var);

\s已经包含制表符和新行,所以上面的正则表达式似乎足够了。