在PHP只有一个空格替换多个空格和换行(Replace Multiple Spaces and Ne

2019-07-29 15:06发布

我有多个换行符的字符串。

该字符串:

This is         a dummy text.               I need              




to                                      format
this.

所需的输出:

This is a dummy text. I need to format this.

我使用的是这样的:

$replacer  = array("\r\n", "\n", "\r", "\t", "  ");
$string = str_replace($replacer, "", $string);

但它不工作根据需要/要求。 有些话没有它们之间的间隔。

其实我需要将字符串转换所有单空格隔开的话。

Answer 1:

我会鼓励你使用preg_replace

# string(45) "This is a dummy text . I need to format this."
$str = preg_replace( "/\s+/", " ", $str );

演示: http://codepad.org/no6zs3oo

您可以在已经注意到" . "第一个例子中的一部分。 这是紧跟标点符号空间或许应该被完全删除。 快速修改允许这样的:

$patterns = array("/\s+/", "/\s([?.!])/");
$replacer = array(" ","$1");

# string(44) "This is a dummy text. I need to format this."
$str = preg_replace( $patterns, $replacer, $str );

演示: http://codepad.org/ZTX0CAGD



文章来源: Replace Multiple Spaces and Newlines with only one space in PHP