2013-09-09 9 views
1

Фоновая информация - я создал интернет-магазин, а потом dropshipping products, я создал веб-сайт и добавил всю информацию о продукте вручную. Теперь у меня есть знания в php, я создал скребок/паук, чтобы получить всю необходимую информацию, без необходимости делать что-либо вручнуюPHP создал бесконечный цикл случайно?

Вопрос: мой скрипт запускается на моем локальном сервере, собирая все ссылки с сайтов sitemap.xml, это загружается в мою базу данных, как только этот скрипт завершен, он начинает перебирать ссылки, извлекающие данные, необходимые для изображения, цены, имени, описания и т. д. ... сайт, который я соскабливаю, не радует, что я делаю это из-за ошибок в человеке/компьютере, которые могут только быть замеченным человеком, но позволил это. во всяком случае, мой скрипт иногда выдает мне ошибку, когда элемент не может быть очищен из-за неизвестных причин, поэтому я поставил die(), когда скрипт выдает эту ошибку.

Это помещается внутри цикла mysql while для ссылок, я заметил несколько раз, что при возникновении ошибки сценарий прекращает загрузку, показывает мне точную ошибку, но когда я закрываю браузер, он продолжает удаление запросов и извлечение информации мне нужно вручную перезапустить сервер до его остановки.

Как это возможно и что я могу сделать, чтобы предотвратить это? это оператор die() просто убивает скрипт на стороне клиента и поддерживает скрипт на стороне сервера?

+3

мы можем увидеть некоторые продезинфицировать код? –

+1

die() в клиентском коде? в javascript нет «смерти». Если вы выполняете 'die()' в php-скрипте, он просто завершает работу. нет «продолжения». –

ответ

0

Итак, вы используете PHP локально для сбора данных с удаленного сайта. Вы запускаете PHP-скрипт в своем локальном браузере. И сценарий не останавливается, когда браузер закрыт.

Конечно, локальный сервер должен быть остановлен.

Однако я думаю, что PHP также можно запустить из командной строки (возможно, только Linux?), А затем вывод может перейти в командную строку, и командная строка может быть просто убита.

Другое решение: в циклах, проверяющих (не) существование файла, а затем умирают. Второй скрипт PHP, вызываемый во второй вкладке браузера, затем добавляет/удаляет этот файл сигнала.

(Файл может служить замок, так что вы не начать сбор данных и дважды.)

+1

Windows также поддерживает PHP Cli, я не знаю, почему это не должно;) – ComFreek

+0

@ComFreek Я слышал из CLI со стороны Linux, поэтому не был уверен. –