douxing1353 2012-10-10 22:04
浏览 51
已采纳

RSS feed:htmlspecialchars()与CDATA

i've written a little class in PHP to generate a simple RSS feed.

The item description should also be able to contain html tags.

I've wondered which one is the better way and what are the advantages/disadvantages of each method:

$item .= "<description><![CDATA[" . $description . "]]></description>
";

or

$item .= "<description>" . htmlspecialchars($description, ENT_NOQUOTES, "UTF-8") . "</description>
";

The only disadvantage of the CDATA method i can think of is, that i've to check in advance if the string $description contains

"<![CDATA[" or "]]>".

Thanks in advance for clarification.

  • 写回答

1条回答 默认 最新

  • dongyilu3143 2012-10-10 23:34
    关注

    There is only 1 choice when you want to use HTML-code there, the CDATA-section.

    The reason: The feed must be valid XML, but HTML may not be valid XML. So if you use HTML without CDATA, everything inside the description that is not valid XML will result in a XML-Parser-Error. This may already be forced by such a simple thing like &nbsp; or <br> (what is valid HTML, but invalid XML)

    CDATA-sections will not be parsed, so you can use there what you want to.

    But however, you better use <content:encoded> for markup.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥30 eclipse开启服务后,网页无法打开
  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多
  • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
  • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000
  • ¥30 ppOCRLabel导出识别结果失败