-
Notifications
You must be signed in to change notification settings - Fork 64
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Скрипт не может корректно обработать большой объём входного html. #1
Comments
потестирую сейчас |
Итак, 6Мб исходный документ, 28 Мб после get('tr'), 102 Мб после toArray(). |
Уточню почему:
Выбор стоит либо добавить памяти либо общаться напрямую с DOM |
По таймауту действительно странно. |
А на хостинге ограничение - 30 сек. :). |
set_time_limit() не катит? strpos работает еще быстрее, может не стоило заморачиваться с регулярками? ) |
Touché ))). |
Привет.
Пытаюсь распарсить
http://ihtik.lib.ru/2011.07_ihtik_hudlit-ru/
Нужно выбрать все имена файлов.
Если делаю:
$elements = $saw->get('table[class=dirlistertable] tr')->toArray();
то падает с ошибкой
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 64 bytes) in /home/u1326/domains/khartn.name/public_html/dev/modules/nokogiri.php on line 217
.
Если же пытаюсь выполнить
$elements = $saw->get('table[class=dirlistertable] tr td:first-child')->toArray();
то падает в тайм-аут.
В первом варианте, когда не падает в тайм-аут, может стоило бы сделать вывод массива в файл, например, сериализовав его?
Тогда можно было бы избежать переполнения.
Или как-то разбивать данные, сбрасывая их на файловую подсистему.
Если есть ещё какие-то идеи - готов к обсуждению.
The text was updated successfully, but these errors were encountered: