2009-08-29 51 views
4

我正在PHP中構建自己的自定義RSS源。我希望標籤包含換行符以使文本更具可讀性。但是,我似乎無法弄清楚如何正確地做到這一點。無論我嘗試一些RSS閱讀器不正確地解釋它。是否有一些標準的最佳方式來添加換行符和RSS 2.0提要?如何在RSS Feed中添加換行符?

我試過「\ n」,它在Mac上的NetNewsWire中工作,但被內置的Safari瀏覽器的RSS閱讀器忽略。

我試過< br/>,它在Safari RSS閱讀器中工作,但導致在NetNewsWire中截斷了
之後的所有文本。

回答

9

默認情況下,讀者會嘗試解析您的數據,除非您告訴他們不要。要讓他們跳過它並按照您的意圖呈現,您必須declare a CDATA section in the RSS

如果原始數據已經換行,那麼你也應該能夠只使用nl2br()功能在<br />添加像這樣:

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

如果不申報CDATA段, RSS閱讀器將看到您可能擁有的任何HTML標籤,作爲實際RSS的一部分,並期望RSS提要的實際節點或元素。

1

您可以使用CDATA和HTML換行符:< BR/>
!例如:

< [CDATA [喜RSS訂閱< BR/>
這裏是新線 ] >

0

RSS specification聲明是的,你可以在描述中使用HTML,但當然它需要被正確地轉義,因爲它被嵌入到XML中。因此,使用一個<br>是正確的想法,但你需要使用以下兩種方法來進行編碼,隨你挑:

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

<description><![CDATA[first line<br>second line]]></description>