php – RSS Feed和特殊字符
我一直在努力争取获得RSS饲料.问题在于特殊字符.我将数据列为网站上的列表,但我也想要一个RSS提要.标题有“&”写的是$amp;.如果我使用htmlspecialchars它将它转换为$amp; amp;如果我没有验证器因“&”而给出错误.我不能写“&”或者html无法正确显示.我试着不管它,把它放在一个Cdata标签,但这也不起作用.
这是饲料:http://montanafarmersunion.com/rss.php 这是同一个列表的html:http://montanafarmersunion.com/?hd=news&id=news 解决方法
RSS Advisory Board page很好地总结了这个问题:
也就是说,没有“正确”的方式.从理论上讲,你应该能够不使用CDATA标签,然后对你的标题进行HTML编码.例如,这适用于我在Firefox& IE8: $title = 'August 1st: MFU President & friends on farm bill'; echo '<title>'.trim($title).'</title>'; 然而W3 RSS validator(这是你正在使用的吗?)因为& amp;而基于上面链接的页面推荐它.他们建议使用十六进制字符引用,但仅限于&和<.实现这个的最简单方法可能是一个简单的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,这表明没有办法让所有读者都满意.但最后一种方法应该得到大部分. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |