从已删除的xml Feed中删除幻像换行符

时间:2013-01-09 00:06:43

标签: php string str-replace removing-whitespace

我试图从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

2 个答案:

答案 0 :(得分:1)

ereg_*个函数是deprecated。不要使用它们。

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

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

[:space:]匹配空格字符。在“C”“POSIX”区域设置中,这些是空格,换页符(\f),换行符(\n),运输返回(\r),水平制表符(\t)和垂直制表符(\v

答案 1 :(得分:1)

rtrim() ltrim() trim()

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

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

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

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

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

编辑:

之后我读了你的帖子:)

新行是否为分隔线(<br>, <br />等)? print_r不会将文字转换为htmlentities