想用php输出一个xml的rss feed,怎么输出页面都有打不开,搞了好久,最后发现浏览器那里有个错误详细信息,打开一看原来是文本里有特殊字符,于是开始想办法转换,试验过了php的htmlspecialchars() 和htmlentities()都不管用。最后在网上找到一个最原始的字符逐个替换方法,终于搞定。
Convert HTML Entities to XML Entities
Input a string with html entities like & and get the correct xml entities back – in this case   . For instance to use if you want to import xhtml as a string into a simpleXML object.
|
<?
function xmlEntities($str)
{
$xml = array(‘"’,’&’,’&’,’<’,’>’,’ ’,’¡’,’¢’,’£’,’¤’,’¥’,’¦’,’§’,’¨’,’©’,’ª’,’«’,’¬’,’­’,’®’,’¯’,’°’,’±’,’²’,’³’,’´’,’µ’,’¶’,’·’,’¸’,’¹’,’º’,’»’,’¼’,’½’,’¾’,’¿’,’À’,’Á’,’Â’,’Ã’,’Ä’,’Å’,’Æ’,’Ç’,’È’,’É’,’Ê’,’Ë’,’Ì’,’Í’,’Î’,’Ï’,’Ð’,’Ñ’,’Ò’,’Ó’,’Ô’,’Õ’,’Ö’,’×’,’Ø’,’Ù’,’Ú’,’Û’,’Ü’,’Ý’,’Þ’,’ß’,’à’,’á’,’â’,’ã’,’ä’,’å’,’æ’,’ç’,’è’,’é’,’ê’,’ë’,’ì’,’í’,’î’,’ï’,’ð’,’ñ’,’ò’,’ó’,’ô’,’õ’,’ö’,’÷’,’ø’,’ù’,’ú’,’û’,’ü’,’ý’,’þ’,’ÿ’);
$html = array(‘"’,’&’,’&’,’<’,’>’,’ ’,’¡’,’¢’,’£’,’¤’,’¥’,’¦’,’§’,’¨’,’©’,’ª’,’«’,’¬’,’­’,’®’,’¯’,’°’,’±’,’²’,’³’,’´’,’µ’,’¶’,’·’,’¸’,’¹’,’º’,’»’,’¼’,’½’,’¾’,’¿’,’À’,’Á’,’Â’,’Ã’,’Ä’,’Å’,’Æ’,’Ç’,’È’,’É’,’Ê’,’Ë’,’Ì’,’Í’,’Î’,’Ï’,’Ð’,’Ñ’,’Ò’,’Ó’,’Ô’,’Õ’,’Ö’,’×’,’Ø’,’Ù’,’Ú’,’Û’,’Ü’,’Ý’,’Þ’,’ß’,’à’,’á’,’â’,’ã’,’ä’,’å’,’æ’,’ç’,’è’,’é’,’ê’,’ë’,’ì’,’í’,’î’,’ï’,’ð’,’ñ’,’ò’,’ó’,’ô’,’õ’,’ö’,’÷’,’ø’,’ù’,’ú’,’û’,’ü’,’ý’,’þ’,’ÿ’);
$str = str_replace($html,$xml,$str);
$str = str_ireplace($html,$xml,$str);
return $str;
}
?>
代码转自:http://www.sourcerally.net/Scripts/39-Convert-HTML-Entities-to-XML-Entities