У меня проблема с PHP-функцией xml_parse. Он не работает с огромными файлами - у меня есть xml-файл размером 10 МБ.xml_parse огромный файл PHP
Проблема в том, что у меня есть старая библиотека XML-RPC от Zend, и есть еще одна функция (обработчики элементов и фальцовка фреймов).
$parser_resource = xml_parser_create('utf-8');
xml_parser_set_option($parser_resource, XML_OPTION_CASE_FOLDING, true);
xml_set_element_handler($parser_resource, 'XML_RPC_se', 'XML_RPC_ee');
xml_set_character_data_handler($parser_resource, 'XML_RPC_cd');
if (!xml_parse($parser_resource, $data, 1)) {
// ends here with 10MB file
}
На другом месте, я просто использовать siple_load_xml_file с опцией LIBXML_PARSEHUGE, но в данном случае я не знаю, что я могу сделать.
Лучший способ будет, если функция xml_parse будет иметь некоторый параметр для огромных файлов.
Спасибо за ваши советы
Ошибка: Ошибка XML: Нет памяти на линии ... длина
Вы видели потребление памяти во время выполнения команды? Возможно, у вас кончился баран? – cb0
Я попробую ini_set с 256 МБ, но ошибка все еще произошла. Я вижу, что есть один элемент с 8 МБ - если это что-то значит. –