0

我正在尝试从 php 中的字符串中删除所有额外的空白字符。字符串源来自客户评论的 xml 提要。

一些评论有太多的空白,它们出现在我的 html 中!无论是......空格键被击中太多次,回车或换行符,我只希望' '字符之间最多有一个空格。

$review = str_replace(array('\n','\r\n',PHP_EOL,'\0','\t'), '', $reviewText[1]);
$review = trim(ereg_replace(' +', ' ', $review));

我也尝试过使用preg_replace('/\s\s+/', ' ', $review);而不是trim(ereg_replace(

尽管我尽了最大的努力,我仍然无法让这个不可见的空格/换行符消失。

有任何想法吗?

我已将下面的评论粘贴为 xxx 以替换任何类型的识别信息。这是一个输出var_dump($review);

这是下面的评论:

http://www.mangomm.co.uk/test/string.php

4

2 回答 2

1

ereg_*函数已弃用。不要使用它们。

以下正则表达式应该可以工作

preg_replace('/[[:space:]]+/', ' ', $review);

[:space:]匹配空白字符。在“C”“POSIX”语言环境中,它们是空格、换页\f符 ( )、换行符 ( \n)、回车符 ( \r)、水平制表符 ( \t) 和垂直制表符 ( \v)

于 2013-01-09T00:11:04.893 回答
1

rtrim() ltrim() 修剪()

这些应该可以满足您的需求。

trim('----')应该输出''

rtrim('----a----');应该输出'----a'

ltrim('----a----');应该输出'a----'

每个连字符代表一个空格。

编辑:

我读了你的帖子之后:)

新行是断线(<br>, <br />等)吗?print_r不将文本转换为 htmlentities

于 2013-01-09T00:13:12.410 回答