删除多个空格

2022-08-30 06:12:59

我从MySQL数据库获取,我需要删除所有空格,等等。$row['message']\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


答案 1

你需要:

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

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

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


答案 2
<?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

推荐