Я знаю, что это старый вопрос, но, возможно, мой ответ поможет вам или кому-то еще. Функция WRITEFUNCTION полезна для обработки текста, когда он поступает в потоковом режиме, или для прерывания загрузки в зависимости от некоторых условий. Вот пример, который просто помещает весь текст в заглавные буквы:
function get_html($url){
$ch = curl_init();
$obj = $this;//create an object variable to access class functions and variables
$this->result = '';
$callback = function ($ch, $str) use ($obj) {
$obj->result .= strtoupper($str);
return strlen($str);//return the exact length
};
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_WRITEFUNCTION, $callback);
curl_exec($ch);
curl_close($ch);
return $this->result;
}
Чтобы увидеть, как я это использовал, посмотрите эту ссылку: Параллельный запрос cURL с обратным вызовом WRITEFUNCTION .