У меня есть этот простой код. Проблема, с которой я сталкиваюсь, заключается в том, что у меня есть список сайтов в таблице под названием Домен, я хочу получить все строки в массиве (или, может быть, выбрать строки), а затем разделить этот массив на 60 строк каждый кусок. например, 1 кусок = 60 строк. Затем проверьте каждый кусок под 1 носок. После того, как 60 строк проверены под 1 носком, возьмите 2-ой Чанк и получите другой носок и продолжайте делать до конца.
Поскольку я не могу использовать один носок дважды, понадобится совет, что мне следует сделать, чтобы проверить, не используется ли один и тот же носок дважды. (Получить носки из БД, может быть? Добавить носок в БД после его проверки?)
Это код ниже …
<?php
$proxies = array();
$proxies[] = '193.165.37.134:45301';
$proxies[] = '82.124.237.100:44356';
if (isset($proxies)) { // If the $proxies array contains items, then
$proxy = $proxies[array_rand($proxies)]; // Select a random proxy from the array and assign to $proxy variable
}
$timeout = 5;
$splited = explode(':',$proxy); // Separate IP and port
if($con = @fsockopen($splited[0], $splited[1], $errorNumber, $errorMessage, $timeout))
{
$ip = $splited[0];
$port = $splited[1];
$sql = "SELECT * FROM domain ";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)){
$id = $row['id'];
$url = $row['url'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_PROXY, $ip);
curl_setopt($ch, CURLOPT_PROXYPORT, $port);
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
$result = curl_exec($ch);
$status = do_some_work($result);
$sql = "UPDATE domain SET status = '$status' WHERE id = '$id' ";
mysql_query($sql);
}
}
?>``
Любая помощь будет оценена. Спасибо
Задача ещё не решена.
Других решений пока нет …