Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > проблема с парсингом


Автор: Areostar 24.3.2014, 18:03
пытаюсь проаврсить xml

Код

$document = simplexml_load_file("http://www.websitelibrary.co.il/sitemap.xml");
 
foreach ($document->sitemap as $sitemap) 
{
    $sub_document = $sitemap->loc;
    
    $sitemap_array[] = $sub_document;
}
   
for($i = 0; $i < count($sitemap_array); $i++)
{
    $temp_doc = $sitemap_array[$i];
#    echo $temp_doc;
    
   $new_document = simplexml_load_file($temp_doc);
.........................................



но дело в том что каждая строка это ссылка на другой xml а инфу нуджно вынемать из этих поддокументов

получаю ощибку:

автор
Maximum execution time of 30 seconds exceeded


что делать??

Автор: AJIeKceuD 24.3.2014, 19:57
Вообще ошибка классическая, легко гуглится. Скрипт пытается работать дольше чем разрешено настройками сервера. Можешь попытаться увеличить время дописав в начале скрипта:
Код

ini_set('max_execution_time', 300);


или в htaccess:
Код

php_value max_execution_time 300

Автор: Sanchezzz 25.3.2014, 15:31
XMLreader читаем файл и разу разибраем если файл больших объемов 100M-1.6G
Для удобства можно использовать в паре SimpelXML

То есть XMLreader  читаем дерево до итемов как только уперлись в item нужной нам информации разбираем ее в цикле через SimpelXML, ну или все XMLreaderом делаем.

Да время скрипту как выше человек написал полюбому надо увеличивать.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)