#php #xml #api #twitter #simplexml
#php #xml #API #Twitter #simplexml
Вопрос:
Этим утром мой PHP-скрипт для публикации OAuth в Twitter перестал работать. Я подозреваю, что 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">amp;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-объекты. amp;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);
Ответ №2:
Этот код работает для XML-данных в формате UTF-8.
$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);
Ответ №3:
повторите строку и найдите новые изменения, которые были внесены в XML-файл,
Возможно, они добавили пространство имен.
Комментарии:
1. также покажите код, в который вы загружаете строку, возможно, вам требуется что-то другое
2. ищите
'copy'
в xml;