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

删除多个空格

删除多个空格

蓝山帝景 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

TA贡献2080条经验 获得超4个赞

你需要:


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

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


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


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

TA贡献1796条经验 获得超4个赞

<?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

TA贡献1802条经验 获得超5个赞

简化为一个功能:


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
  • 4 回答
  • 0 关注
  • 663 浏览

添加回答

举报

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