【问题标题】:Whats the best way to pass html embed code via rss feed to a rss parser in php?通过 rss 提要将 html 嵌入代码传递给 php 中的 rss 解析器的最佳方法是什么?
【发布时间】:2008-09-22 03:22:45
【问题描述】:

我正在尝试将 Flash 视频的 html 嵌入代码放入 rss feed,然后由我的其他站点上的解析器 (magpie) 解析。我应该如何在一侧对嵌入代码进行编码,然后在另一侧对其进行解码,以便我可以将干净的 html 插入到接收服务器上的 DB 中?

【问题讨论】:

    标签: php html xml validation rss


    【解决方案1】:

    由于 RSS 是 XML,您可能需要查看 CDATA,我认为它在各种 RSS 规范中都是有效的。

    这是 w3schools 的条目:http://www.w3schools.com/XML/xml_cdata.asp

    【讨论】:

    • 如果 HTML 中有 CDATA 部分(或只是 "]]>" ),这将中断。这样做是有效的,但可能是您不想处理的错误情况,因为您只是在考虑嵌入 Flash 播放器。
    【解决方案2】:

    htmlencode/htmldecode 应该可以解决问题。

    【讨论】:

      【解决方案3】:

      我一直在使用 htmlentities/html_entity_decode 但由于某种原因它不适用于解析器。在正常测试中它可以工作,但解析器总是返回不带 " 字符的 html 代码。

      【讨论】:

        【解决方案4】:

        RSS 是 XML。它有非常具体的 HTML 编码规则。如果您正在生成它,我建议您使用 xml 库来编写包含 HTML 的节点,以确保您获得正确的编码。

        HTMLencode 只会执行在 HTML 中嵌入数据所需的转义,XML 规则更严格。

        【讨论】:

        • 你会推荐哪一个?
        • libxml 是免费提供的,但也有读/写 XML 的 PHP 模块,以及大多数语言的 xml 库。
        【解决方案5】:

        与其编写自己的 RSS XML 提要,不如考虑使用来自django.contrib.syndication 的 Django 联合框架:

        https://docs.djangoproject.com/en/dev/ref/contrib/syndication/

        它还支持附件,这是嵌入图像或视频的 RSS 方式。

        对于自定义标签,还有一个允许您更改 XML 的低级 API: https://docs.djangoproject.com/en/dev/ref/contrib/syndication/#the-low-level-framework

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-04-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多