使用PHP从文本中删除特殊字符

时间:2009-12-04 03:32:25

标签: php rss

我编写了一个生成rss feed的php程序,但由于在feed中填充的文本中发现了特殊字符,因此我遇到了困难。有没有办法轻松删除这些特殊字符(如&符号)或是否有另一个库执行相同的rss生成函数?

4 个答案:

答案 0 :(得分:2)

虽然对数据进行编码并不是那么难,但使用库来生成兼容良好的RSS或Atom提要可能是一个很好的解决方案(而且,毕竟是你要求的 )。

除了Feed 阅读之外,

Zend_Feed还提供了Feed 创建

取自Zend_Feed文档:

// importing a rss feed from an array
$feed = Zend_Feed::importArray($array, 'rss'); 

// dump the feed to standard output
print $feed->saveXML();

// send http headers and dump the feed
$feed->send();

至于主机上的可用性,有些人可能在其include目录中有Zend Framework。但如果没有,很容易在托管目录中的某个位置复制您需要的Zend Framework库(在您的情况下,Zend_Feed文件)。

答案 1 :(得分:1)

http://php.net/manual/en/function.htmlentities.php

这也适用于XML(RSS提要也是XML)。

答案 2 :(得分:1)

为什么不在将数据库中的帖子放入Feed中之前对其进行清理? 您可以轻松使用php内置的html_entities()函数。

例如:

$post = 'This came from the database and contains nasty characters like &!';
$sanitised = htmlentities($post);

现在$sanitised等于“此%20came%20来自%20%20%数据库%20%和%20包含%20nasty%20字符%20like%20%26!”这应该在任何rss阅读器中显示正常。

答案 3 :(得分:1)

我正在使用SimpleXMLElement生成我的RSS。这很简单易用:

$elementA->nestedElementB->elementC['AttributeD'] = $str_value

所有的转义和编码都得到了解决。