Twitter API simplexml_load_string停止工作

时间:2011-05-11 03:57:42

标签: php xml api twitter simplexml

今天早上,我的PHP脚本,用于Twitter OAuth发布,停止了工作。我怀疑Twitter为返回的字符串添加了一些行。任何人都可以帮助如何调试它。

由于

Warning:  simplexml_load_string() [function.simplexml-load-string]: Entity: line 74: 
parser error : Entity 'copy' not defined in /nfs/c05/h01/mnt/82363/domains/html/c/cron.m.php on line 429

Warning:  simplexml_load_string() [function.simplexml-load-string]:           
<li class="first">&copy; 2011 Twitter</li> in /nfs/c05/h01/mnt/82363/domains/html/c/cron.m.php on line 429

Warning:  simplexml_load_string() [function.simplexml-load-string]: ^ in /nfs/c05/h01/mnt/82363/domains/html/c/cron.m.php on line 429

3 个答案:

答案 0 :(得分:1)

XML包含HTML实体。 &copy;在XML中无效。作为一种解决方法,您可以在将文档交给SimpleXML之前预先过滤文档:

$xml = file_get_contents(...);
$xml = strtr($xml, array_flip(array_diff(
           get_html_translation_table(HTML_ENTITIES),
           get_html_translation_table(HTML_SPECIALCHARS)
       )));

$xml = simplexml_load_string($xml);

答案 1 :(得分:1)

此代码适用于UTF-8字符串xml数据。

$ xml = mb_strtr($ xml,array_flip(array_diff(get_html_translation_table(HTML_ENTITIES),get_html_translation_table(HTML_SPECIALCHARS))));

$ xml = simplexml_load_string($ xml);

答案 2 :(得分:0)

回显字符串并查找对xml文件进行的新更改

他们可能会添加名称空间。