Я хочу создать собственный RSS / XML-канал. Я извлекаю данные из базы данных для отображения, но продолжаю получать недопустимые символьные ошибки. Если в строке есть амперсанд или другие странные символы, XML будет недействительным.
Я пытался использовать urlencode и htmlentities, но они не захватывают все возможные символы, которые нужно избегать. Кто-нибудь знает о функции PHP, которая подготовит строку для вывода XML?
htmlspecialchars должно быть достаточно. Но не забудьте установить третий параметр (charset) в набор символов, соответствующий строковой кодировке.
Например:
function html_special_chars($str) { return preg_replace(array('/&/', '/"/'), array('&', '"'), $str); }