Ошибки simplexml_load_string в больших файлах возникают в одной системе, но не в другой

я имею дело с сторонней библиотекой PHP, которую я могуне редактировать, и этоРаботает нормально почти год. Оно используетsimplexml_load_string на ответ с удаленного сервера. В последнее время этоЗадыхался от больших ответов. Это фид данных для списков недвижимости, и формат выглядит примерно так:





   sysid   1   2   3   4   5   6   
  252370080   Residential 0.160   No  ADDR0   06051
  252370081   Residential 0.440   Yes ADDR0   06043
  252370082   Residential 1.010   No  ADDR0   06023
More tab delimited text


Я скачал образец файла ответа (около 22 МБ), здесьгде я закончил с моей отладкой и здравомыслием. Оба сервера работают под управлением PHP версии 5.3.8, но обратите внимание на разные результаты. Я'Насколько я могу судить, оба файла одинаковы (я полагаю, что разные размеры файлов, strlen и последние 50 символов могут быть объяснены символами новой строки Windows, имеющими дополнительный символ возврата каретки). Тестовый скрипт:

error_reporting(-1);
ini_set('display_errors', 1);
$file = 'error-example.xml';
$xml = file_get_contents($file);

echo 'filesize:              ';
var_dump(filesize($file));

echo 'strlen:                ';
var_dump(strlen($xml));

echo 'simplexml object?      ';
var_dump(is_object(simplexml_load_string($xml)));

echo 'Last 50 characters:    ';
var_dump(substr($xml, -50));

Вывод локально в Windows:

filesize:              int(21893604)
strlen:                int(21893604)
simplexml object?      bool(true)
Last 50 characters:    string(50) "RD DR    CT  Watertown   203-555-5555            
"

Вывод на удаленный сервер UNIX:

filesize:              int(21884093)
strlen:                int(21884093)
simplexml object?      
Warning: simplexml_load_string(): Entity: line 9511: parser error : internal error in /path/to/test.php on line 19

Warning: simplexml_load_string(): AULTED CEILING IN FOYER, BRICK FP IN FR, NEW FLOORING IN LR DR FR FOYER KITCHEN  in /path/to/test.php on line 19

Warning: simplexml_load_string():                                                                                ^ in /path/to/test.php on line 19

Warning: simplexml_load_string(): Entity: line 9511: parser error : Extra content at the end of the document in /path/to/test.php on line 19

Warning: simplexml_load_string(): AULTED CEILING IN FOYER, BRICK FP IN FR, NEW FLOORING IN LR DR FR FOYER KITCHEN  in /path/to/test.php on line 19

Warning: simplexml_load_string():                                                                                ^ in /path/to/test.php on line 19
bool(false)
Last 50 characters:    string(50) "ORD DR   CT  Watertown   203-555-5555            
"

Некоторые ответы на комментарии и дополнительную информацию:

Насколько я могу судить, сам XML кажется верным (и этоделает работа в моей системе).

magic_quotes_runtime определенно выключен

Работающий сервер имеет libxml версии 2.7.7, а другой - 2.7.6. Может ли это действительно иметь значение? Я не мог найти журнал изменений libxml, но это кажется маловероятным.

Похоже, что это происходит только тогда, когда размер ответа / файла превышает определенный размер, и ошибка всегда возникает в следующей за последней строке.

У меня нет проблем с памятью, тестовый скрипт запускается мгновенно.

Существуют различия в конфигурациях PHP, которые я могу опубликовать, если буду знать, какие из них актуальны. Любая идея, в чем может быть проблема, или знаете что-нибудь еще, что я хотел бы проверить?

Ответы на вопрос(3)

Ваш ответ на вопрос