我試圖使用ParallelCurl與callback when cURL receives data from the server它是連接到。這是我目前擁有的代碼:ParallelCurl與CURLOPT_WRITEFUNCTION
function request_finished($content, $url, $ch, $user_data) {
echo "Request Finished: ", $content, "\n";
}
$pc=new ParallelCurl();
$servers=Server::loadNewAllFromDB(); //Returns an array of 'Server' objects which store connection information
foreach ($servers as $server) {
$pc->setOptions(
array(
CURLOPT_USERAGENT=>'My UserAgent String',
CURLOPT_WRITEFUNCTION=>
function ($ch, $string) {
echo "WRITEFUNCTION Called! | ", $string;
return strlen($string);
}
)
);
//print_r($pc->options);
$pc->startRequest(
'http://' . $server->address . ':' . $server->portbase . '/someurl'),
'request_finished'
);
}
$pc->finishAllRequests();
現在,我希望發生是捲曲時,有數據輸出到被稱爲我的匿名函數。相反,它只是似乎忽略CURLOPT_WRITEFUNCTION
設置在所有的事實。
需要注意的是,如果我不使用ParallelCurl,我可以設置非常相同的匿名函數作爲CURLOPT_WRITEFUNCTION就好了。就好像我的函數稍後被重寫了一樣。我也證實它實際上正在設定。您可以看到我已註釋的行,//print_r($pc->options)
。它輸出我的閉包對象。
任何對此的思考將是非常讚賞。謝謝。