的RSS Advisory Board page总结了问题相当漂亮:
该规范一直缺乏关于是否清晰在项目说明以外的元素中允许HTML为 ,导致聚合器在其他方式中处理字符数据的方式差异很大 元素。这使得发布者 确定如何编码字符“&”和“<”(其必须是以XML编码的 )特别困难。
也就是说,没有“正确”的方式。理论上,你应该能够避免使用CDATA标签,然后HTML编码你的标题。例如,这对我的作品在Firefox & IE8:
$title = 'August 1st: MFU President & friends on farm bill';
echo '<title>'.trim($title).'</title>';
然而W3 RSS validator(这是你使用的是什么?)反对建议,因为&
,根据上面链接的页面上。他们建议使用十六进制字符引用,但仅限于&
和<
。实现这个最简单的方法可能是一个简单的str_replace
:
$title = 'August 1st: MFU President & friends on farm bill';
$title = str_replace(array('&', '<'), array('&', '<'), $title);
echo '<title>'.trim($title).'</title>';
(请注意我做的出发串裸&
)
我觉得有必要提this blog post为好,这表明有ISN这并不是一种让所有读者始终都快乐的方式。但最后的方法应该得到他们中的大部分。
向我们显示您的代码。没有看到你尝试过的东西,我们不禁感慨。 – 2012-08-02 17:55:58
这里是提问'