Is it possible to use stream_notification_callback with cURL?
I would like to adapt the example #1 that I have found here http://www.php.net/manual/en/function.stream-notification-callback.php, to my cURL function below to create/update a text file that contains the downloaded bytes.
I know that CURLOPT_PROGRESSFUNCTION
is implemented in php 5.3 but I'm running php 5.2 and I can't upgrade.
private function Save($url) {
$this->SetTempFileName(time());
$file = fopen($this->GetTempVidFileName(), 'w');
$ckfile = tempnam("/tmp_cookie", "CURLCOOKIE");
$ch = curl_init();
curl_setopt($ch, CURLOPT_FILE, $file);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, $ckfile);
curl_setopt($ch, CURLOPT_COOKIEJAR, $ckfile);
curl_exec($ch);
curl_close($ch);
fclose($file);
return is_file($this->GetTempFileName());
}
I know that I will have to use file_put_contents to replace the "case STREAM_NOTIFY_PROGRESS" part like this...
case STREAM_NOTIFY_PROGRESS:
file_put_contents('progress.txt', $bytes_transferred);
break;
...but my question is how to adapt the two codes? Thanks in advance.
I'm afraid your options are either not to use curl (and use the much more limited HTTP wrapper instead or even sockets) or upgrade.
PHP 5.2 is dead (not more updates, even security fixes). You can also try to compile PHP 5.3 for PHP 5.2 (there will likely be only a few easy issues) or even backport the CURLOPT_PROGRESSFUNCTION
support.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With