У меня есть обратный вызов выполнения CURL, работающий через параметр CURLOPT_PROGRESSFUNCTION, который успешно вызывает мою функцию-член в PHP. Переменная dlnow возвращает правильное полученное значение, но dltotal всегда возвращает 0. Что мне здесь не хватает?
class MyClass { function getFile(){ ... $fp = fopen ($file, 'w+'); $curl = curl_init(); curl_setopt($curl,CURLOPT_URL,$signed['signed_url']); curl_setopt($curl, CURLOPT_TIMEOUT, 1000); curl_setopt($curl, CURLOPT_FILE, $fp); // write curl response to file curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); curl_setopt($curl, CURLOPT_NOPROGRESS, 0); curl_setopt($curl, CURLOPT_PROGRESSFUNCTION, array($this, 'curl_progress_callback')); } function curl_progress_callback($dltotal, $dlnow, $ultotal, $ulnow){ echo $dltotal; //Reports correct value echo $dlnow; //Always returns 0 } }
EDIT: Это сообщение обновлено с помощью информации от @Sabuj Hassan. Первоначально я думал, что получаю правильный dltotal, но неверный dlnow, но у меня был дополнительный ненужный аргумент в моей функции обратного вызова.