PHP Curl进度条(回调返回百分比)

时间:2011-01-16 14:36:50

标签: php curl libcurl

我已经使用

实现了curl进度条
curl_setopt($curl, CURLOPT_PROGRESSFUNCTION, 'callback');

curl_setopt($curl, CURLOPT_BUFFERSIZE,64000);

curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);

和回调函数。

问题是,脚本每次都在我的html上输出百分比,如下所示:

0
0.1
0.2
0.2
0.3
0.4
..
..
..
1
1.1

如何将其与CSS结合使用以显示更改的进度条?

1 个答案:

答案 0 :(得分:4)

假设您有一个进度条HTML:

<div id="progress-bar">
    <div id="progress">0%</div>
</div>

CSS:

#progress-bar {
    width: 200px;
    padding: 2px;
    border: 2px solid #aaa;
    background: #fff;
}

#progress {
    background: #000;
    color: #fff;
    overflow: hidden;
    white-space: nowrap;
    padding: 5px 0;
    text-indent: 5px;
    width: 0%;
}

和JavaScript:

var progressElement = document.getElementById('progress')

function updateProgress(percentage) {
    progressElement.style.width = percentage + '%';
    progressElement.innerHTML = percentage + '%';
}

您可以输出JavaScript并让它为您更新进度条,例如:

<script>updateProgress(0);</script>
<script>updateProgress(0.1);</script>
<script>updateProgress(0.2);</script>
..
..

请注意,您无法将每个更新放在单独的脚本块中,因为浏览器会在执行前尝试读取完整脚本,并且进度条将无效。