views:

130

answers:

3

I want to create my own RSS/XML feed. I fetch data from the database to display, but keep getting invalid character errors. If the string has an ampersand or other strange characters in it, the XML will be invalid.

I tried using urlencode and htmlentities, but these don't capture all possible characters which need to be escaped. Does anyone know of a PHP function which will prepare a string for XML output?

A: 

htmlspecialchars should be enough. But don't forget to set the 3rd parameter (charset) to the character set matching the string charset.

Activist
A: 

For example:

function html_special_chars($str)
{
     return preg_replace(array('/&/', '/"/'), array('&', '"'), $str);
}
Vasil Dakov