У меня есть PHP-скрипт, который перехватывает переменную нашего партнера. В переменной есть строка XML. Когда они обрабатывают файл, он продолжает выдавать ошибки вроде этого:
Внимание:
SimpleXMLElement :: __ construct ():
Объект: строка 19: ошибка синтаксического анализатора:
Преждевременное завершение данных в теге
строка описания 19 в ... тогда
перечисляет путь к скрипту.
Вот пример данных, которые передаются:
xml=<Posting>
<description><![CDATA[<p>this is a test posting.</p>
Here is some more of the test.]]></description>
</Posting>
Я настроил тестовый файл, который содержал текстовое поле с тем же кодом, как показано выше, и с именем xml. Когда я отправляю его, скрипт работает нормально и заканчивается так же, как и должен. Журнал партнера начинается как «необработанный HTTP-запрос POST». Не уверен, что это как-то по-другому, но чем больше деталей, тем лучше. Я пробовал это также на отдельных серверах, но все мои тесты работают, когда я отправляю данные, а не когда партнер отправляет их.
Вот как я собираю данные:
if ($_POST['xml']) {
$xmlstr = stripslashes($_POST['xml']);
$xml = simplexml_load_string($xmlstr, 'SimpleXMLElement', LIBXML_NOCDATA);
}