6

我正在用 PHP 构建我自己的自定义 RSS 提要。我希望标签包含换行符以使文本更具可读性。但是,我似乎无法弄清楚如何正确地做到这一点。无论我尝试什么,一些 RSS 阅读器都会错误地解释它。是否有一些标准的最佳方式来添加换行符和 RSS 2.0 提要?

我试过“\n”,它在 Mac 上的 NetNewsWire 中工作,但被内置的 Safari 浏览器的 RSS 阅读器忽略。

我试过 <br />,它在 Safari RSS 阅读器中工作,但
在 NetNewsWire 中被截断后导致所有文本。

4

4 回答 4

12

默认情况下,读者会尝试解析您的数据,除非您告诉他们不要这样做。要让他们跳过它并按照您的意图呈现它,您必须在 RSS中声明一个CDATA部分。

如果原始数据已经有换行符,那么您也应该能够使用该nl2br()函数添加<br />如下:

echo '<description><![CDATA[ ' .nl2br($desc_data). ' ]]></description>';

如果您不声明该CDATA部分,RSS 阅读器将看到您可能拥有的任何 HTML 标记作为实际 RSS 的一部分,并期望 RSS 提要的实际节点或元素。

于 2009-08-29T13:24:46.690 回答
2

您可以使用 CDATA 和 html 换行符: <br/>
示例:

<![CDATA[Hi Rss feed<br/>
这是新行]]>

于 2009-08-29T10:43:49.150 回答
1

RSS 规范声明是的,您可以在描述中使用 HTML,但当然它需要正确转义,因为它嵌入在 XML 中。所以使用 a<br>是正确的想法,但是您需要使用以下任何一种方法对其进行编码,请选择:

<description>first line&lt;br&gt;second line</description>

<description><![CDATA[first line<br>second line]]></description>
于 2016-11-30T23:11:31.473 回答
0
file_put_contents("rss.txt","<br>") roach idea
于 2017-03-24T13:03:08.237 回答