为了账号安全,请及时绑定邮箱和手机立即绑定

删除多个空格

/ 猿问

删除多个空格

蓝山帝景 2019-10-06 13:20:50

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


查看完整描述

4 回答

?
犯罪嫌疑人X

你需要:


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

您使用的\s\s+是指空格(空格,制表符或换行符)后跟一个或多个空格。这实际上意味着用单个空格替换两个或多个空格。


您想要的是用单个空格替换一个或多个空格,因此您可以使用模式  \s\s*或\s+(推荐)


查看完整回答
反对 回复 2019-10-06
?
慕的地8271018

<?php

$str = "This is  a string       with

spaces, tabs and newlines present";


$stripped = preg_replace(array('/\s{2,}/', '/[\t\n]/'), ' ', $str);


echo $str;

echo "\n---\n";

echo "$stripped";

?>

这个输出


This is  a string   with

spaces, tabs and newlines present

---

This is a string with spaces, tabs and newlines present


查看完整回答
反对 回复 2019-10-06
?
12345678_0001

简化为一个功能:


function removeWhiteSpace($text)

{

    $text = preg_replace('/[\t\n\r\0\x0B]/', '', $text);

    $text = preg_replace('/([\s])\1+/', ' ', $text);

    $text = trim($text);

    return $text;

}

根据Danuel O'Neal的回答。


查看完整回答
反对 回复 2019-10-06
?
FFIVE

$str='This is   a Text \n and so on Text text.';

print preg_replace("/[[:blank:]]+/"," ",$str);


查看完整回答
反对 回复 2019-10-06

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信