删除多个空格

我$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,而只能删除单个空格。谁能告诉我该怎么做?


蓝山帝景
浏览 664回答 4
4回答

犯罪嫌疑人X

你需要:$ro = preg_replace('/\s+/', ' ',$row['message']);您使用的\s\s+是指空格(空格,制表符或换行符)后跟一个或多个空格。这实际上意味着用单个空格替换两个或多个空格。您想要的是用单个空格替换一个或多个空格,因此您可以使用模式  \s\s*或\s+(推荐)

慕的地8271018

<?php$str = "This is&nbsp; a string&nbsp; &nbsp; &nbsp; &nbsp;withspaces, tabs and newlines present";$stripped = preg_replace(array('/\s{2,}/', '/[\t\n]/'), ' ', $str);echo $str;echo "\n---\n";echo "$stripped";?>这个输出This is&nbsp; a string&nbsp; &nbsp;withspaces, tabs and newlines present---This is a string with spaces, tabs and newlines present

12345678_0001

简化为一个功能:function removeWhiteSpace($text){&nbsp; &nbsp; $text = preg_replace('/[\t\n\r\0\x0B]/', '', $text);&nbsp; &nbsp; $text = preg_replace('/([\s])\1+/', ' ', $text);&nbsp; &nbsp; $text = trim($text);&nbsp; &nbsp; return $text;}根据Danuel O'Neal的回答。
打开App,查看更多内容
随时随地看视频慕课网APP