Помогите внедрить в php

12
N
На сайте с 16.02.2009
Offline
19
#11

А с каких это пор в ответах должно присутствовать готовое решение? Я подсказал варианты, дальше ТС пусть сам разбирается что ему нужно и что как работает.

Gmp
На сайте с 12.10.2008
Offline
83
Gmp
#12

Пусть ТС сперва поставит задачу по людски а потом будете спорить, все приведенные варианты по своему верны

Слава Шевцов
На сайте с 23.07.2005
Offline
370
#13
SeoNizator:
К чему эти прелюдии?
Есть что написать - пишите сразу.

Не ссорьтесь, дети мои:

class http

{

var $curl;
var $urls;
var $conn;

function http($urls, $timeout, $proxys=0)
{
$this->curl = curl_multi_init();
$this->urls=$urls;
foreach ($this->urls as $i => $url)
{
$this->conn[$i] = curl_init($url);
curl_setopt($this->conn[$i], CURLOPT_RETURNTRANSFER, 1);
if($proxys[$i])
{
curl_setopt($this->conn[$i], CURLOPT_PROXY, $proxys[$i]);
}
curl_setopt($this->conn[$i], CURLOPT_TIMEOUT, $timeout);
}
}

function get()
{
foreach ($this->urls as $i => $url)
{
curl_multi_add_handle ($this->curl,$this->conn[$i]);
}
}

function post($posts)
{
foreach ($this->urls as $i => $url)
{
if(is_array($posts[$i]))
{
$post_data='';
foreach ($posts[$i] as $name=>$val)
$post_data.=$name.'='.urlencode($val).'&';

curl_setopt($this->conn[$i], CURLOPT_POST, 1);
curl_setopt($this->conn[$i], CURLOPT_POSTFIELDS, $post_data);
}
curl_multi_add_handle ($this->curl,$this->conn[$i]);
}
}

function exec()
{
global $mcurl_errs;
$mcurl_errs=array();

do {
$mrc = curl_multi_exec($this->curl, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);

while ($active and $mrc == CURLM_OK)
{
if (curl_multi_select($this->curl) != -1)
{
do
{
$mrc = curl_multi_exec($this->curl, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}

foreach ($this->urls as $i => $url)
{
if (($err = curl_error($this->conn[$i])) == '')
{
$res[$i] = curl_multi_getcontent($this->conn[$i]);
}
else
{
$res[$i] = '';
}

curl_multi_remove_handle($this->curl,$this->conn[$i]);
curl_close($this->conn[$i]);
}

curl_multi_close($this->curl);
if(isset($res))
return $res;
else
return false;
}
} // http end

function GetPages($urls)
{
$counturls = count($urls);
$http = new http($urls, $counturls);
$http->get();
$pages = $http->exec();
unset ($http);

return $pages;
}

$urls[] = 'http://www.site.com/index.php?action_skin_change=yes&skin_name=3weekeng';
$pages = GetPages($urls);

Неизменность точки зрения неизменно порождает иллюзию понимания.
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий