PHP条带标记的问题

时间:2011-05-28 21:59:16

标签: php html strip-tags

我正在努力让我的网站Feed正常运行。

我需要选择一些内容并在我的Feed中显示。选择后,我剥离标签,然后显示。

问题在于:

数据仍然显示,好像标签仍然存在(但没有可见的html标签),例如。剥离后,在我的源头生病了:

你好(只是说明)

----两者之间会有差距,好像html字符仍然存在,但是当我查看源代码时看不到任何内容-----

您好

我该如何解决这个问题。感谢

修改

为了更清楚,剥离后我仍然得到这样的文字:

这是我的第一行

这是我的第二行,第一行和第二行之间存在间隙,好像有一个段落标记

更新

我正在使用这个:

$体= SUBSTR(用strip_tags(preg_replace函数( '/ \ N {2,} /', “\ n” 个,$行[ “POST_CONTENT”])),0150);

当我回显$ body时,它仍然保持新行

3 个答案:

答案 0 :(得分:1)

strip_tags将逐字剥离标记,留下任何其他空格。 您可以使用正则表达式删除额外的换行符和空格,但根据您的内容,您可能会破坏它。

删除换行符:

$string = preg_replace('/\n{2,}/',"\n",$string);

删除多余的空格:

$string = preg_replace('/ {2,}/',' ',$string);

答案 1 :(得分:1)

您可能有一个\n,它位于您删除的结束标记之后的段落末尾。

preg_replace('/[\p{Z}\s]{2,}/s',' ',$string); 

将删除所有white spacetabsnew linesdouble spaces并替换为单个空格。

\s匹配任何空格字符。相当于Unicode字符类别[\f\n\r\t\v\x85\p{Z}]。如果使用ECMAScript选项指定符合ECMAScript的行为,则\s等同于[ \f\n\r\t\v]

答案 2 :(得分:0)

我遇到了一些非常烦人的相似。解决了修剪

    $body=strip_tags(trim($row["post_content"]));