elseif($content=='' OR strpos($content,'302 Moved')!==false OR strpos($content,'info@linkweava.net')!==false)
если это фирма предоставляющая прокси. или другую фразу которая будет одинакова на таких "страницах ошибки".
спасибо за совет, я добавил еще пару условий туда, теперь вроде все работает довольно стабильно.
есть вопрос: я правильно вставил строки $prox=get_proxy(); и if(count($prox)==0) $prox=get_proxy(); ?
очень благодарю за помощь.
не понял куда лучше вставить if(count($prox)==0) $prox=get_proxy(); (Добавление)
сейчас еще нотисы пишет PHP Notice: Undefined variable: prox in /var/www/1.php on line 38
по этой строке $content = get("http://webcache.googleusercontent.com/search?q=cache:$n", $prox[0]); (Добавление)
это if(count($prox)==0) $prox=get_proxy(); условие как я понимаю заново забирает список проксей из файла и формирует массив, т.е. если например исходный файл с проксями в реальном времени будет обновляться, то при окончании проксей он возьмет новую партию? (Добавление)
вот такая ошибка еще вышла в процессе работы скрипта: PHP Warning: array_shift() expects parameter 1 to be array, null given in /var/www/1.php on line 44
это строка array_shift ($prox);
я так понимаю прокси закончились рабочие как раз? потому что я условие еще не ставил.
? (Добавление)
и что делать если обнаружится не одна а несколько ошибок? сейчас пытаюсь другие выявить. (Добавление)
а 302 ошибку отдает гугл когда банит прокси, он переадресует на страницу вида http://www[dot]google[dot]com/sorry/?con[dot][dot][dot]arch?q=cache:URL ну и "Мы зарегистрировали подозрительный трафик, исходящий из вашей сети. Повторите запрос позднее."
прокси при этом не переключается на новый, и скрипт виснет. сейчас тоже не переключается. наверное потому что elseif не прописал
извиняюсь за криворукость, но не понял куда вставить код, чтобы что-то толковое вышло.
Elio пишет:
И вопрос по логике скрипта... сейчас на сколько я понял: есть 10 прокси и 100 строк поиска.
если точнее примерно 500 строк прокси и 1000 строк url
Elio пишет:
Скрипт берёт 1 прокси и прогоняет все 100 строк. Потом берёт второй прокси и прогонят ещё 100 строк. Надо на выходе получить пройденных 1000 строк или надо просто обойти 100 строк, но с подменой ip при его бане?
На выходе надо пройти все строки из url.txt и без разницы сколько на это прокси потребуется, вполне может быть и так что по 1 прокси на запрос, а потом просто по кругу прокси идут из массива, если их меньше чем url. главное чтобы при неполучении нужного ответа от прокси или просто при неполучении какого либо ответа, ip менялся на следующий, а url оставался прежний пока ответ не будет получен. по окончании и прохождения всех элементов из массива формируемого из url.txt скрипт завершает работу. постарался объяснить как можно подробнее.
Просьба помочь с проблемой подвисания скрипта, а именно как я понял не осуществляется переключение на новый прокси если не приходит ответ или приходит ответ с ошибкой.
На деле все выглядит так что скрипт выдает результаты, пока прокси не банится, после этого прокси не переключается на новый из массива проксей, и работа скрипта не продолжается. Если же остановить скрипт и почистить в листе проксей пару-тройку проксей, и перезапустить скрипт, то работа продолжается до следующего подвисания.
Цель скрипта чтобы он обработал все строки из файла url.txt, а прокси перебирались по порядку, по кругу пока весь файл url.txt не будет обработан. Спасибо.
illy где то я ошибся '/(([a-z0-9\-\.]+)?[a-z0-9\-]+(!?\.[a-z]{2,4}))/mUsi' не работает, как сделать чтобы по этой /(([a-z0-9\-\.]+)?[a-z0-9\-]+(!?\.[a-z]{2,4}))/ регулярке брался не только домен, а вся ссылка, если учесть что все ссылки по одной на строке.
если брать '/(([a-z0-9\-\.]+)?[a-z0-9\-]+(!?\.[a-z]{2,4}))/mUsi' то он берет часть url типа "/connect.html" и делает из него домен типа connect.ht не учитывая слеши и то что по 1 урл на строку..
illy поясни пожалуйста что означает mUsi, я где то встречал уже Usi но не помню что означает.
'/(([a-z0-9\-\.]+)?[a-z0-9\-]+(!?\.[a-z]{2,4}))/mUsi'
так верно?
illy в твоей регулярке урл ищутся по протоколу по сути, это немного не тот вариант, поскольку у меня исходные url без указания http. так что туда могут попасть и просто слова с латинскими буквами. хотелось бы все же применять ту регулярку (Добавление) illy если дописать к той регулярке mUsi она будет забирать всю строку?