我编写了一个生成rss feed的php程序,但由于在feed中填充的文本中发现了特殊字符,因此我遇到了困难。有没有办法轻松删除这些特殊字符(如&
符号)或是否有另一个库执行相同的rss生成函数?
答案 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
所有的转义和编码都得到了解决。