Как добавить разрывы строк в RSS-каналах? - PullRequest
6 голосов
/ 29 августа 2009

Я создаю свой собственный RSS-канал на PHP. Я хочу, чтобы тег содержал разрывы строк, чтобы сделать текст более читабельным. Тем не менее, я не могу понять, как это сделать правильно. Что бы я ни пытался, какой-то RSS-ридер интерпретирует это неправильно. Есть ли какой-нибудь стандартный лучший способ добавить разрыв строки и канал RSS 2.0?

Я попробовал "\ n", который работает в NetNewsWire на Mac, но игнорируется программой чтения RSS встроенного браузера Safari.

Я пробовал
, которая работает в программе чтения RSS Safari, но приводит к тому, что весь текст после
обрезается в NetNewsWire.

Ответы [ 4 ]

10 голосов
/ 29 августа 2009

По умолчанию читатели будут пытаться проанализировать ваши данные, если вы не скажете им не делать этого. Чтобы они пропустили это и представили его так, как вам нужно, вы должны объявить раздел CDATA в RSS .

Если в необработанных данных уже есть новые строки, то вы также можете просто использовать функцию nl2br() для добавления в <br />, например, так:

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

Если вы не объявите раздел CDATA, читатели RSS увидят любые HTML-теги, которые могут быть у вас в составе фактического RSS, и ожидают фактический узел или элемент RSS-канала.

1 голос
/ 01 декабря 2016

В спецификации RSS говорится, что да, вы можете использовать HTML в описании, но, конечно, его нужно правильно экранировать, поскольку он встроен в XML. Так что использование <br> - правильная идея, но вам нужно закодировать его одним из следующих способов, выберите:

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

<description><![CDATA[first line<br>second line]]></description>
1 голос
/ 29 августа 2009

Вы можете использовать CDATA и html разрывы строк:

Пример:

<! [CDATA [Hi Rss feed <br />
Вот новая строка ]]>

0 голосов
/ 24 марта 2017
file_put_contents("rss.txt","<br>") roach idea
...