【发布时间】:2010-12-28 16:24:16
【问题描述】:
我是 PHP 新手,正在尝试使用以下方法向现有 PHP 脚本添加进度条:
$ch=curl_init() or die("ERROR|<b>Error:</b> cURL Error");
curl_setopt($ch, CURLOPT_URL, $c);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_FILE, $fp);
//####################################################//
// This is required to curl give us some progress
// if this is not set to false the progress function never
// gets called
curl_setopt($ch, CURLOPT_NOPROGRESS, false);
// Set up the callback
curl_setopt($ch, CURLOPT_PROGRESSFUNCTION, 'callback');
// Big buffer less progress info/callbacks
// Small buffer more progress info/callbacks
curl_setopt($ch, CURLOPT_BUFFERSIZE, 128);
//####################################################//
curl_exec($ch);
curl_close($ch);
fclose($fp);
回调函数:
function callback($download_size, $downloaded, $upload_size, $uploaded)
{
$percent=$downloaded/$download_size;
// Do something with $percent
echo "$percent";
}
现在,我已经从 PHP 站点复制粘贴了这个示例,但这不起作用??我的 PHP 版本是 5.2.11,请。提出什么问题??
编辑:我正在从另一个脚本调用这个 php 脚本。
信息:我被 5.2.X 分支困住了,因为我的网络主机说 cPanel 还不支持 5.3.x 分支,有什么解决方案吗??
【问题讨论】:
-
复制粘贴不是学习 PHP 或任何其他编程语言的方法。
-
同意,我刚刚搜索并看到这个示例最终使用它 - 我认为这没有什么问题。 :)
-
如果有人想使用此代码,请记住,在第一次或前几次调用中,$download_size 可以为零。因此,请确保在 $percent = $downloaded/$download_size 中缓存除以零错误,或者在计算前检查 $download_size > 0。