KOLANICH
Новичок
curl_multi не понятно, как юзать
решил переписать для работы в асинхр режиме
для этого вынес всё кроме залогинивания в отдельный класс
при создаании объекта ему передастся массив
обьектов кастрированного класса a
методы будут выполняться сразу для всех объектов класса а
как переписать методы в мультикурле?
(не знаю,как это выразить словами, но должно работать так:
ставим запросы на параллельное выполнение
когда выполнен запрос, обр пол данные и ставим несколько запросов в выполняться
что-то вроде комбинации событий и замыканий javascript должно получиться (данные загружены - создаем новый запрос и на него обработчик, который выполнится, когда запрос завершится)
но в php нет событий и замыканий
как это реализовать через curl_multi ?
)
как вообще узнать, какой запрос завершен, а какой - нет
и в чём смысл
PHP:
class a{
public var $ch;
.......куча всего........
function __construct($login,$pass){
$this->ch = curl_init(self::loginAddr);
curl_setopt($this->ch, CURLOPT_HEADER,1);
curl_setopt($this->ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($this->ch, CURLOPT_USERAGENT, self::useragentString);
//браузер
//куки
$this->cookieFile=tempnam(self:tempdir, "COOK");
curl_setopt($this->ch, CURLOPT_COOKIEJAR, $this->cookieFile);
curl_setopt($this->ch, CURLOPT_COOKIEFILE, $this->cookieFile);
}
function __destruct() {
curl_setopt($this->ch, CURLOPT_URL, self::logoutAddr);
$res=curl_exec($this->ch);
curl_close($this->ch);
unlink($this->cookieFile);
}
function doSth(){
curl_setopt($this->ch, CURLOPT_URL,self::firstAddr);
$res=curl_exec($this->ch);
...............some procesing
foreach($m[1] as $i => $id){
........................
curl_setopt( $this->ch, CURLOPT_POSTFIELDS,"id=".$id."&a=".$a."&b=".$b);
}
}
function dosomething() {
........request and processing....
return $count;
}
}
решил переписать для работы в асинхр режиме
для этого вынес всё кроме залогинивания в отдельный класс
при создаании объекта ему передастся массив
обьектов кастрированного класса a
методы будут выполняться сразу для всех объектов класса а
как переписать методы в мультикурле?
(не знаю,как это выразить словами, но должно работать так:
ставим запросы на параллельное выполнение
когда выполнен запрос, обр пол данные и ставим несколько запросов в выполняться
что-то вроде комбинации событий и замыканий javascript должно получиться (данные загружены - создаем новый запрос и на него обработчик, который выполнится, когда запрос завершится)
но в php нет событий и замыканий
как это реализовать через curl_multi ?
)
как вообще узнать, какой запрос завершен, а какой - нет
и в чём смысл
PHP:
while($running ){
curl_multi_exec($mh,$running);//это проверяет,все ли запросы отправлены?
}