Вообщем суть такова: нужен скрипт, который будет вытягивать из файла проксей прокси по порядку. Пытался и array_ search тут использовать и через current, next,end - не получилось.Нужно чтобы было так: первый вызов: [0] прокси в массиве Последующий вызов : текщий + 1 И самый важный момент: Если прокси последняя в массиве, то начать с самого начала. (с [0] значения в массиве). Помогите плиз
Покажи кусок такого файла с прокси. функция $arr = file() не подходит? там каждая строка файла будет значением массива $arr. $arr[0] - первая строка =\
PHP: $proxys = 'proxy.txt'; $proxies = file($proxys) $info = file('lalala.txt'); //тут содержится некая инфа for($i=0; $i < count($info); $i++){ list($proxy, $port) = explode(":", [ЗДЕСЬ ТЕКУЩАЯ ПРОКСЯ]); //здесь операция с прокси } В итоге нужна функция или не знаю. Нужно осуществить порядковый выбор прокси из файла.
1 раз - первая прокси 2 раз - вторая прокси 3 раз - третья прокси А потом проверка, если прокси последняя , то после её использования взять опять первую прокси
Deathdreams PHP: $proxies = file($proxy); $c = count($proxies); $i = 0; while ($i < 100) // на всякий случай, остановка после 100 итераций { list($addr,$port) = explode(":",trim($proxies[$i++ % $c])); // делаем что хотим с проксей }
PHP: <?php function Go() { $proxies = file("proxies.txt"); $size = count($proxies); for($i=0; $i < $size ; $i++) { list($proxy, $port) = explode(":", $proxies[$i]); echo "IP:".$proxy." Port:".$port."<br>"; } if ($i == $size) { echo "End File on line $i. Restart...<br>"; Go(); } } Go(); ?>
<Ла-ла-ла> Тут пробегал я. Язык бы не мешало указывать. Под Python у меня есть реализация. Суть ее такова: 1. Набиваем массив проксями 2. Вызываем метод .pop(0) (Забирает первую проксю из массива и удаляет ее оттуда) 3. Проверяем проксю, и если она валидная, то добавляем ее методом .append() (Добавляет проксю в конец массива) 4. На всём этом стоит обработчик ошибки IndexError (возбуждаться будет тогда, когда нулевого элемента массива не существует), и в таком случае возвращается значение None В итоге имеем : Когда из основного цикла вызывается метод получения прокси, то прокси берутся последовательно, потом проверяется, если валидная то добавляется в конец массива, и возвращается. В основном цикле же при получении прокси делается только проверка на то, чтобы значение прокси не равнялось None, если оно равняется None, то происходит завершение главного цикла. </Ла-ла-ла> P.S. Кому интересно, могу скинуть в личку...
Не, ну я заходил в тему "[Help] Работа с .txt файлов", и даже среди первого поста не было ни слова о том, что это пхп. Но это так, придирки. Посмотри алгоритм, сможешь ли его на пхп реализовать. Удобно блин оно очень, я его в отдельный класс вынес да и все - никаких проблем, все красиво и функционально, и пох что это смесь бульдога с носорогом Суть его в том, что обходишься вообще без цикла даже + проксики получаешь только валидные
Что-нить типа PHP: <?php $pass = file ('pass.txt'); $proxy = file ('proxy.txt'); $proxy_count = count ($proxy); $p = 0; foreach ($pass as $passwd) { $passwd = trim ($passwd); if ($p == $proxy_count) $p = 0; // do something $p++; } ?>
Помоему вы все делаете не ТО что просит Автор, как я понял ему нужно пройти цикл проксей и потом вернутся в начало, вот накатал по быстрому маленький пример: PHP: <?php set_time_limit(0); if(file_exists('proxy.txt') && filesize('proxy.txt') > 0) { $proxylist = file('proxy.txt'); $proxylist = array_map('trim',$proxylist); $use_proxy = TRUE; $proxy_number = 0; } else { $use_proxy = FALSE; } for ($i=0;$i<=5;$i++) { get_page('http://2ip.ru/'); } function get_page($url) { global $use_proxy; global $proxylist; global $proxy_number; $ch = curl_init($url); curl_setopt($ch,CURLOPT_RETURNTRANSFER, 0); curl_setopt($ch,CURLOPT_REFERER, $url); curl_setopt($ch,CURLOPT_TIMEOUT, 5); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 AdCentriaIM/1.7 Firefox-Zalupa/3'); if($use_proxy = TRUE) { curl_setopt($ch, CURLOPT_PROXY, $proxylist[$proxy_number]); $proxy_number +=1; if($proxy_number >= count($proxylist)) { $proxy_number = 0; } } curl_exec($ch); curl_close($ch); } ?> proxy.txt Code: 211.138.124.197:80 221.130.13.208:80 218.202.1.188:80