2011-05-11 84 views
0

今天早上我的PHP腳本,用於Twitter OAuth發佈,停止工作。我懷疑Twitter爲返回的字符串添加了一些行。任何人都可以幫助如何調試。Twitter API simplexml_load_string停止工作

感謝

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 

回答

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); 
0

呼應串並查找了對XML文件所做的新變化

這可能是因爲他們增加了一個命名空間。

+0

也顯示加載字符串的代碼,也許你需要不同的東西 – Ibu 2011-05-11 04:01:40

+0

在xml中尋找''copy''; – Ibu 2011-05-11 04:02:13

1

此代碼適用於UTF-8字符串xml數據。 ($ xml,array_flip(array_diff(get_html_translation_table(HTML_ENTITIES),get_html_translation_table(HTML_SPECIALCHARS))));}};}}};

$ xml = simplexml_load_string($ xml);