Ошибка SimpleXMLElement: несколько раз! - PullRequest
0 голосов
/ 06 августа 2009

Я нашел эти ошибки в моем журнале ошибок:

[05-Aug-2009 12:57:27] PHP Warning:  SimpleXMLElement::__construct() [<a href='simplexmlelement.--construct'>simplexmlelement.--construct</a>]: ^ in /home/mojo/public_html/shackupload.php on line 37

Самое смешное, что в моем журнале ошибок было около 200 из них с одной и той же отметкой времени! Что происходит и почему так много?!

Строки, о которых идет речь, таковы:

if(!(substr($res, 0, 6)=='Failed')){

    $xml = new SimpleXMLElement($res) or die('Error creating a SimpleXML instance');
    $imagelink = (string) $xml->image_link; // This is the image link
    $_SESSION['shack_link'] = $imagelink;
    echo 'done';    
}

Ответы [ 2 ]

3 голосов
/ 06 августа 2009

В документации SimpleXMLElement :: __ construct говорится (цитирование):

Ошибки / Исключения

Создает сообщение об ошибке E_WARNING за каждую ошибку, найденную в данных XML и выдает исключение, если ошибки были обнаружено.

Итак, я бы сказал, что вы пытались загрузить файл, содержащий ошибки XML (например, недействительный файл).

И чтобы объяснить тот факт, что вы получили 200 ошибок одновременно: в вашем файле должно быть что-то около 200 ошибок, так как __construct генерирует одну E_WARNING на ошибку в данных XML.

Запись данных XML в файл в такой ситуации может помочь вам точно определить, что послужило причиной появления предупреждений ... По крайней мере, если это случается не часто.


РЕДАКТИРОВАТЬ: Кстати, время от времени просматривая ваш журнал error_log, это действительно хорошая идея! Я не вижу достаточного количества людей, делающих это: - (

1 голос
/ 06 августа 2009

Попробуйте вывести $ res перед этим блоком кода. Похоже, ваша строка $ res содержит символ ^ в начале или где-то за пределами разметки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...