echo $li->href возвращает ссылку вида /goods/catalog/cat/r202/k4343/, которая попадает под второе регулярное выражение и переходит во второй case.
Вы написали он зацикливается из-за того что выполняется первый case при рекурсивном вызове функции,я так не думаю потому что первый case реагирует на ссылку вида, http://www[dot]merlion[dot]ru/goods/catalog/cat/ которую мы передаем в функцию во второй строке листинга
Я правильно вас понимаю, то что перебираются все ссылки и происходит зацикливании , и они снова перебираются ? в массив $arr можно передать любое значение ?
Без массива $arr вроде скрипт сработал, после этого объявил этот массив и скрипт уже грузится 15 мин.
LIME, спасибо за ответ, но наверно вы не понимаете зачем нужен скрипт и как он работает
При первом вызове функции parsing_page ('http://www.merlion.ru/goods/catalog/cat/'), выполняется первый case, далее мы получаем ссылки на вторую страницу и в нем же происходит рекурсивный вызов функции для каждой ссылки, после рекурсивного вызова выполняется второй case где выводится echo "KO", до этого мой скрипт не доходит из-за того,что браузер грузится и скрипт не выполняется.
Ваш вариант не работает тоже,я не понимаю зачем эти ссылки добалять в массив, если при первом вызове скрипта их все равно нет в этом массиве. Нам надо после рекурсивного вызова функции для каждой ссылки попасть во второй case.
Если убрать рекурсивный вызов функции, то все выводится, а так браузер показывает что загружает страницу, все продолжается около 20 мин. , дальше остановил загрузку.
При рекурсивном обращении очень долго выполняется скрипт, оставлял на 20 мин. и ничего не происходило $li->href- возвращает /goods/catalog/cat/1001/1002/ путь до товара.
С вариантом где в цикле вызываем функцию тоже самое.
При выполнении первого case добавлял все ссылки в массив и потом перебирал их в цикле вызывая каждый раз эту функцию, но результат тот же. В переменой $mc содержаться все ссылки которые на первой странице, если в конце первого case добавить return $mas; Если я вас неправильно понял пожалуйста напишите ваш вариант кода очень надо
Всем доброго времени суток. Помогите пожалуйста решить проблему
При парсинге первой страницы сайта получаю ссылки на вторую страницу в первом case, при обработке этих ссылок ( их количество 513), при рекурсивном вызове этой же функции (строка 27) скрипт зависает навечно, подскажите как с этим справиться. После обработки ссылок первой страницы должен выполнится второй case (строка 38) Вот код:
Всем добрый день я занимаюсь парсингом сайта его структура во вложении.
Проблема в том что во втором case когда парсим ссылки на конкретный товар парсер зависает навечно. Первая страница парсится нормально. Подскажите как разгрузить парсер или сделать по другому