[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Добавить прокси лист в класс мультикурла
Игорь_Vasinsky
Т.к. нуб при написании, понимании и использовании классов, прошу помочь.

есть класс мультикурла

Свернутый текст

<?php
/**
$urls = array("
http://site.com/page1.php","http://site.com/page2.php","ht&# 116;p://site.com/page3.php");
$mcurl = new MCurl;
$mcurl->threads = 20;
$mcurl->timeout = 5; // нам нужна максимально быстрая скачка, пусть теряются медленные страницы
unset($results); // очищаем массив $results (если он использовался раньше где-то в коде)
$mcurl->multiget($urls, $results);
// в массиве $results - контент страниц
*/


class MCurl
{

var $timeout = 2000; // максимальное время загрузки страницы в секундах
var $threads = 60; // количество потоков

var $all_useragents = array(
"Opera/9.23 (Windows NT 5.1; U; ru)",
"Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.8) Gecko/20071008 Firefox/2.0.0.4;MEGAUPLOAD 1.0",
"Mozilla/5.0 (Windows; U; Windows NT 5.1; Alexa Toolbar; MEGAUPLOAD 2.0; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7;MEGAUPLOAD 1.0",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; MyIE2; Maxthon)",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; MyIE2; Maxthon)",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; MyIE2; Maxthon)",
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; Maxthon; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; Media Center PC 5.0; InfoPath.1)",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; MyIE2; Maxthon)",
"Opera/9.10 (Windows NT 5.1; U; ru)",
"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1; aggregator:Tailrank; http://tailrank.com/robot) Gecko/20021130",
"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.8) Gecko/20071008 Firefox/2.0.0.8",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; MyIE2; Maxthon)",
"Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.8) Gecko/20071008 Firefox/2.0.0.8",
"Opera/9.22 (Windows NT 6.0; U; ru)",
"Opera/9.22 (Windows NT 6.0; U; ru)",
"Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.8) Gecko/20071008 Firefox/2.0.0.8",
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRSPUTNIK 1, 8, 0, 17 HW; MRA 4.10 (build 01952); .NET CLR 1.1.4322; .NET CLR 2.0.50727)",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)",
"Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9"
);

function multiget($urls, &$result)
{
$threads = $this->threads;
$useragent = $this->all_useragents[array_rand($this->all_useragents)];

$i = 0;

for($i=0;$i<count($urls);$i=$i+$threads)
{
$urls_pack[] = array_slice($urls, $i, $threads);
}
foreach($urls_pack as $pack)
{
$mh = curl_multi_init(); unset($conn);

foreach ($pack as $i => $url)
{
$conn[$i]=curl_init(trim($url));

curl_setopt($conn[$i],CURLOPT_RETURNTRANSFER, 1);
curl_setopt($conn[$i],CURLOPT_TIMEOUT, $this->timeout);
curl_setopt($conn[$i],CURLOPT_USERAGENT, $useragent);
curl_multi_add_handle ($mh,$conn[$i]);
}

do { $n=curl_multi_exec($mh,$active); usleep(100); } while ($active);

foreach ($pack as $i => $url)
{
$result[]=curl_multi_getcontent($conn[$i]);
curl_close($conn[$i]);
}

curl_multi_close($mh);
}

}
}

?>


есть массив $proxi - file('proxi.txt'); (около 7000 строк)

хочу добавить в этот класс этот массив

знаю curl_setopt($conn[$i], CURLOPT_PROXY,proxi[$i]);

всё остальное отменя далёко,.. пробывал канешь дабавлять 3й аргумент и т.д. но руки видимо растут не от туда.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.