是否可以将stream_notification_callback与cURL一起使用?
我想将我在此处http://www.php.net/manual/en/function.stream-notification-callback.php找到的示例#1调整到下面的cURL函数中,以创建/更新包含下载字节的文本文件。
我知道CURLOPT_PROGRESSFUNCTION
是在php 5.3中实现的,但是我正在运行php 5.2,我无法升级。
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());
}
我知道我必须使用file_put_contents替换“case STREAM_NOTIFY_PROGRESS”部分,就像这样......
case STREAM_NOTIFY_PROGRESS:
file_put_contents('progress.txt', $bytes_transferred);
break;
...但我的问题是如何调整这两个代码? 提前谢谢。
答案 0 :(得分:1)
我担心您的选择要么不使用curl(而是使用更有限的HTTP包装器,甚至是套接字)或升级。
PHP 5.2已经死了(不是更新,甚至安全修复)。您还可以尝试为PHP 5.2编译PHP 5.3(可能只有一些简单的问题),甚至可以向后移植CURLOPT_PROGRESSFUNCTION
支持。