у меня есть xml
файл, содержащий более 5000 товаров (предметов). Это действительно большой файл, и обработка его занимает более 40 секунд.
Мой php код:
ini_set('max_execution_time', 300);
$xml = simplexml_load_file("wwww.example.com");
print_r($xml);
Есть ли решение для этого? например загрузка только части файла?
Попробуйте позвонить simplexml_load_file
функция с LIBXML_COMPACT
флаг:
$xml = simplexml_load_file("wwww.example.com",'SimpleXMLElement',LIBXML_COMPACT);
XMLReader Это другое решение, такое как SAX (или expat), которое позволяет вам постепенно читать файл XML, и с ним должно быть проще работать, чем с первым.
Это может существенно ускорить процесс, если вам не нужно анализировать весь файл, и может остановиться, когда вы нашли то, что искали.
Если вам все еще нужно проанализировать файл целиком, он не даст ускорения.
Попробуйте это в заголовке файла php:
ignore_user_abort(true);
set_time_limit(0);