Уберите специальные символы из текста с помощью PHP - PullRequest
2 голосов
/ 04 декабря 2009

Я написал программу php, которая генерирует RSS-каналы, однако у меня возникли трудности с ней из-за специальных символов в тексте, который заполняется в ленте. Есть ли способ легко удалить эти специальные символы (например, символ &) или есть другая библиотека, которая выполняет ту же функцию генерации rss?

Ответы [ 4 ]

2 голосов
/ 04 декабря 2009

Хотя кодирование данных не так уж сложно, использование библиотеки для создания хорошего совместимого канала RSS или Atom, вероятно, является хорошим решением (и, в конце концов, - это то, что вы просили ) ,

Zend_Feed обеспечивает подачу создание в дополнение к подаче чтение .

Взято из документации Zend_Feed:

// importing a rss feed from an array
$feed = Zend_Feed::importArray($array, 'rss'); 

// dump the feed to standard output
print $feed->saveXML();

// send http headers and dump the feed
$feed->send();

Что касается доступности на хостах, некоторые могут иметь Zend Framework в своем каталоге include. Но если нет, то просто скопируйте нужные библиотеки Zend Framework (в вашем случае файлы Zend_Feed) в каталог вашего хостинга.

1 голос
/ 04 декабря 2009

Я использую SimpleXMLElement для генерации RSS. Это безумно просто в использовании:

$elementA->nestedElementB->elementC['AttributeD'] = $str_value

И все экранирование и кодирование позаботятся.

1 голос
/ 04 декабря 2009

Почему бы просто не санировать сообщения из базы данных, прежде чем помещать их в канал? Вы можете легко использовать встроенную функцию php html_entities().

например:

$post = 'This came from the database and contains nasty characters like &!';
$sanitised = htmlentities($post);

Теперь $sanitised равно «Этот% 20came% 20f% 20the% 20database% 20and% 20 содержит% 20nasty% 20characters% 20like% 20% 26!» который должен отображаться нормально в любом rss-ридере.

1 голос
/ 04 декабря 2009

http://php.net/manual/en/function.htmlentities.php

Это относится и к XML (RSS-каналы XML).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...