PHP实现的进度条效果详解


Posted in PHP onMay 03, 2016

本文实例讲述了PHP实现的进度条效果。分享给大家供大家参考,具体如下:
在做采集的时候,想通过php来实现一个进度条功能,谷歌了一下,找了个合适的代码。下面直接上代码:

PHP实现的进度条效果详解

<?php
//防止执行超时
set_time_limit(0);
//清空并关闭输出缓存
ob_end_clean();
//需要循环的数据
for($i = 0; $i < 188; $i++)
{
  $users[] = 'Tom_' . $i;
}
//计算数据的长度
$total = count($users);
//显示的进度条长度,单位 px 
$width = 500;
//每条记录的操作所占的进度条单位长度
$pix = $width / $total;
//默认开始的进度条百分比
$progress = 0;
?>
<html>
<head>
<title>动态显示服务器运行程序的进度条</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style>
body,div input {
  font-family: Tahoma;
  font-size: 9pt
}
</style>
<script language="JavaScript">
 <!-- 
 function updateProgress(sMsg, iWidth) 
 { 
  document.getElementById("status").innerHTML = sMsg; 
  document.getElementById("progress").style.width = iWidth + "px"; 
  document.getElementById("percent").innerHTML = parseInt(iWidth / <?php echo $width; ?> * 100) + "%"; 
  } 
 --> 
 </script>
</head>
<body>
  <div style="margin:50px auto; padding: 8px; border: 1px solid gray; background: #EAEAEA; width: <?php echo $width+8; ?>px">
    <div style="padding: 0; background-color: white; border: 1px solid navy; width: <?php echo $width; ?>px">
      <div id="progress"
        style="padding: 0; background-color: #FFCC66; border: 0; width: 0px; text-align: center; height: 16px"></div>
    </div>
    <div id="status"></div>
    <div id="percent"
      style="position: relative; top: -30px; text-align: center; font-weight: bold; font-size: 8pt">0%</div>
  </div> 
<?php
flush(); //将输出发送给客户端浏览器 
foreach($users as $user)
{
  // 在此处使用空循环模拟较为耗时的操作,实际应用中需将其替换; 
  // 如果你的操作不耗时,我想你就没必要使用这个脚本了 :) 
  for($i = 0; $i < 1000000; $i++)
  {
  }
  ?> 
<script language="JavaScript"> 
 updateProgress("正在操作用户 <?php echo $user; ?> ....", <?php echo min($width, intval($progress)); ?>);
</script>
<?php
  flush(); //将输出发送给客户端浏览器,使其可以立即执行服务器端输出的 JavaScript 程序。 
  $progress += $pix;
} //end foreach 
?> 
<script language="JavaScript"> 
  //最后将进度条设置成最大值 $width,同时显示操作完成 
 updateProgress("操作完成!", <?php echo $width; ?>); 
</script>
<?php
flush();
?>
</body>
</html>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP 如何向 MySQL 发送数据
Oct 09 PHP
PHP中的string类型使用说明
Jul 27 PHP
php中flush()、ob_flush()、ob_end_flush()的区别介绍
Feb 17 PHP
PHP使用array_multisort对多个数组或多维数组进行排序
Dec 16 PHP
Laravel模板引擎Blade中section的一些标签的区别介绍
Feb 10 PHP
CodeIgniter与PHP5.6的兼容问题
Jul 16 PHP
PHP获取指定时间段之间的 年,月,天,时,分,秒
Jun 05 PHP
一个简单的php MVC留言本实例代码(必看篇)
Sep 22 PHP
php实现的生成迷宫与迷宫寻址算法完整实例
Nov 06 PHP
PHP与Perl之间知识点区别整理
Mar 19 PHP
解决php写入数据库乱码的问题
Sep 17 PHP
THINKPHP5分页数据对象处理过程解析
Oct 28 PHP
php实现按天数、星期、月份查询的搜索框
May 02 #PHP
php支持断点续传、分块下载的类
May 02 #PHP
php数组分页实现方法
Apr 30 #PHP
thinkPHP使用pclzip打包备份mysql数据库的方法
Apr 30 #PHP
php打包压缩文件之ZipArchive方法用法分析
Apr 30 #PHP
php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)
Apr 30 #PHP
php简单实现数组分页的方法
Apr 30 #PHP
You might like
动态网站web开发 PHP、ASP还是ASP.NET
2006/10/09 PHP
PHP分页显示制作详细讲解
2006/10/09 PHP
php过滤危险html代码
2008/08/18 PHP
Admin generator, filters and I18n
2011/10/06 PHP
一个简单的网页密码登陆php代码
2012/07/17 PHP
js限制checkbox勾选的个数以及php获取多个checkbbox的方法深入解析
2013/07/18 PHP
PHP获取浏览器信息类和客户端地理位置的2个方法
2014/04/24 PHP
php中随机函数mt_rand()与rand()性能对比分析
2014/12/01 PHP
php线性表的入栈与出栈实例分析
2015/06/12 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
2017/09/21 PHP
ThinkPHP框架实现的MySQL数据库备份功能示例
2018/05/24 PHP
php菜单/评论数据递归分级算法的实现方法
2019/08/01 PHP
Javascript操作cookie的函数代码
2012/10/03 Javascript
页面元素绑定jquery toggle后元素隐藏的解决方法
2014/03/27 Javascript
js中回调函数的学习笔记
2014/07/31 Javascript
javascritp添加url参数将参数加入到url中
2014/09/25 Javascript
获取阴历(农历)和当前日期的js代码
2016/02/15 Javascript
Atitit.js的键盘按键事件捆绑and事件调度
2016/04/01 Javascript
jquery easyUI中ajax异步校验用户名
2016/08/19 Javascript
vue-axios使用详解
2017/05/10 Javascript
微信小程序分页加载的实例代码
2017/07/11 Javascript
通过命令行创建vue项目的方法
2017/07/20 Javascript
详解vue中使用vue-quill-editor富文本小结(图片上传)
2019/04/24 Javascript
详解微信小程序实现跑马灯效果(附完整代码)
2019/04/29 Javascript
mock.js模拟数据实现前后端分离
2019/07/24 Javascript
小程序点餐界面添加购物车左右摆动动画
2020/09/23 Javascript
bpython 功能强大的Python shell
2016/02/16 Python
利用Tkinter(python3.6)实现一个简单计算器
2017/12/21 Python
详谈pandas中agg函数和apply函数的区别
2018/04/20 Python
python实现文件批量编码转换及注意事项
2019/10/14 Python
如何在pycharm中安装第三方包
2020/10/27 Python
澳大利亚冒险体验:Adrenaline(跳伞、V8赛车、热气球等)
2017/09/18 全球购物
财务人员的自我评价范文
2014/03/03 职场文书
关于工作时间玩手机的检讨书
2014/09/18 职场文书
python自动统计zabbix系统监控覆盖率的示例代码
2021/04/03 Python
vue引入Excel表格插件的方法
2021/04/28 Vue.js