Как лучше всего передать код для встраивания HTML через RSS-канал в RSS-парсер в PHP?
-
02-07-2019 - |
Вопрос
Я пытаюсь поместить HTML-код для встраивания флэш-видео в файл. rss feed
, который затем будет анализироваться парсером (magpie)
на другом моем сайте.Как мне закодировать код внедрения с одной стороны, а затем декодировать его с другой, чтобы я мог вставить чистый HTML в файл? DB
на принимающем сервере?
Решение
Поскольку RSS — это XML, возможно, вам захочется проверить CDATA, который, как я считаю, действителен в различных спецификациях RSS.
<сводка><![CDATA[Здесь данные]]>
Вот запись w3schools об этом: http://www.w3schools.com/XML/xml_cdata.asp
Другие советы
htmlencode/htmldecode должно помочь.
Я использовал htmlentities/html_entity_decode, но по какой-то причине он не работает с парсером.В обычном тесте это работает, но парсер всегда возвращает html-код без символов < > ".
RSS — это XML.Он имеет очень специфические правила кодирования HTML.Если вы его генерируете, я бы рекомендовал использовать библиотеку xml для написания узла, содержащего HTML, чтобы убедиться, что вы правильно выполнили кодировку.
HTMLencode будет выполнять только экранирование, необходимое для встраивания данных в HTML, правила XML более строгие.
Вместо написания собственного XML-канала RSS рассмотрите возможность использования платформы распространения Django из django.contrib.syndication
:
https://docs.djangoproject.com/en/dev/ref/contrib/syndiction/
Он также поддерживает вложения, что является способом RSS для встраивания изображений или видео.
Для пользовательских тегов также существует низкоуровневый API, который позволяет изменять XML:https://docs.djangoproject.com/en/dev/ref/contrib/syndiction/#the-low-level-framework