来打算用PHP调用system(),怕画面跑的太快,程序没有执行完就跳出画面而做出个进度的假象页面。但后来发现这个不能监控system的执行程度,就没有使用了,不能浪费。放这保管一下。
技术实现:php+css+js+html
运行代码查看代码复制代码打印关于
<?php
if ('source' == $_GET['act']) { //查看源代码
show_source($_SERVER["SCRIPT_FILENAME"]);
exit;
}
set_time_limit(0);
for ($i = 0; $i < 500; $i++) {
$users[] = 'swf_が' . $i;
} //end for
$width = 500; //显示的进度条长度,单位 px
$total = count($users); //总共需要操作的记录数
$pix = $width / $total; //每条记录的操作所占的进度条单位长度
$progress = 0; //当前进度条长度
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/transitional.dtd">
<html>
<head>
<title>php动态显示服务器运行程序的进度条</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<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: 4px; padding: 8px; border: 1px solid gray; background: #EAEAEA; width: <?php echo $width+8; ?>px">
<div><font color="gray">新しいSWFファイル作成しています、少々待ってください。</font></div>
<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 < 10000; $i++) {
;
}
?>
<script language="JavaScript">
updateProgress("新しいSWFファイル作成します“<?php echo $user; ?>” ....", <?php echo min($width, intval($progress)); ?>);
</script>
<?php
flush(); //将输出发送给客户端浏览器,使其可以立即执行服务器端输出的 JavaScript 程序。
$progress += $pix;
} //end foreach
// 最后将进度条设置成最大值 $width,同时显示操作完成
?>
<script language="JavaScript">
updateProgress("新しいSWFファイル作成完了をしました。", <?php echo $width; ?>);
</script>
<?php
flush();
?>
<input type="button" value="查看源码" onclick="document.location.href='<?php echo $_SERVER['PHP_SELF']; ?>?act=source'" />
</body>
</html>
<?php
if ('source' == $_GET['act']) { //查看源代码
show_source($_SERVER["SCRIPT_FILENAME"]);
exit;
}
set_time_limit(0);
for ($i = 0; $i < 500; $i++) {
$users[] = 'swf_が' . $i;
} //end for
$width = 500; //显示的进度条长度,单位 px
$total = count($users); //总共需要操作的记录数
$pix = $width / $total; //每条记录的操作所占的进度条单位长度
$progress = 0; //当前进度条长度
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/transitional.dtd">
<html>
<head>
<title>php动态显示服务器运行程序的进度条</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<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: 4px; padding: 8px; border: 1px solid gray; background: #EAEAEA; width: <?php echo $width+8; ?>px">
<div><font color="gray">新しいSWFファイル作成しています、少々待ってください。</font></div>
<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 < 10000; $i++) {
;
}
?>
<script language="JavaScript">
updateProgress("新しいSWFファイル作成します“<?php echo $user; ?>” ....", <?php echo min($width, intval($progress)); ?>);
</script>
<?php
flush(); //将输出发送给客户端浏览器,使其可以立即执行服务器端输出的 JavaScript 程序。
$progress += $pix;
} //end foreach
// 最后将进度条设置成最大值 $width,同时显示操作完成
?>
<script language="JavaScript">
updateProgress("新しいSWFファイル作成完了をしました。", <?php echo $width; ?>);
</script>
<?php
flush();
?>
<input type="button" value="查看源码" onclick="document.location.href='<?php echo $_SERVER['PHP_SELF']; ?>?act=source'" />
</body>
</html>
最终使用的是PHP+JS(setInterval())来自己检测文件来实现的。感觉良好,通常聊天室也是这么应用的!代码就不帖了。
http://www.corange.cn/archives/2008/11/2193.html
分享到:
相关推荐
您可以用它打开 BMP/GIF/JPG/PNG/PSD/AVI/CUR/ICO 等格式并将它们转换或混合为 GIF 格式,并保存为 BMP/GIF/JPG/PNG/PSD/AVI/CUR/ICO 甚至 SWF 格式。您还可以用它剪切、缩放、旋转导入的图像文件,调整帧的顺序和...
把gif文件转换成swf格式的文件,并且可以导出gif文件中每一帧图片到 bmp,jpeg,gif,tiff,png 等多种格式并且可以一次导出所有帧并转换成bmp图片,tga图片
您可以用它打开 BMP/GIF/JPG/PNG/PSD/AVI/CUR/ICO 等格式并将它们转换或混合为 GIF 格式,并保存为 BMP/GIF/JPG/PNG/PSD/AVI/CUR/ICO 甚至 SWF 格式。您还可以用它剪切、缩放、旋转导入的图像文件,调整帧的顺序和...
您可以用它打开 BMP/GIF/JPG/PNG/PSD/AVI/CUR/ICO 等格式并将它们转换或混合为 GIF 格式,并保存为 BMP/GIF/JPG/PNG/PSD/AVI/CUR/ICO 甚至 SWF 格式。您还可以用它剪切、缩放、旋转导入的图像文件,调整帧的顺序和...
对于图像文件,Vid2Flash涵盖了BMP、JPG、GIF和PNG等主流格式。BMP是无损的位图格式,但文件较大;JPG(JPEG)是压缩格式,适合网络共享;GIF支持动画且颜色限制在256色内,适合简单动态效果;PNG则提供透明度支持和...
靖源image2mp4转换器是一款把bmp/jpg/gif/png等格式图片和wav/mp3声音文件转换为mp4/avi/flv/swf等格式动画的软件,是一款wav/mp3转换软件.在很多地方都可看到 mp4/flv/SWF/avi等动画档案的踪迹,可是专业的制作软件...
软件还支持MP4/3GP/MPG/AVI/WMV/FLV/SWF、MP3/WMA/AMR/OGG/AAC/WAV和JPG/BMP/PNG/TIF/ICO/GIF/TGA/PDF/Execl等格式。 该产品的其他功能包括支持iPhone、iPod和BlackBerry设备的MP4格式视频。另一方面,通过转换文件...
您可以用它打开 BMP/GIF/JPG/PNG/PSD/AVI/ANI/CUR/ICO 等格式并将它们转换或混合为 GIF 格式,并保存为 BMP/GIF/JPG/PNG/PSD/AVI/ANI/CUR/ICO 甚至 SWF 格式。您还可以用它剪切、缩放、旋转导入的图像文件,调整帧的...
2. **图片导出**:一旦识别出图片,SwfModify将允许用户选择要导出的图像,并以常见的图像格式如JPEG、PNG、GIF或BMP进行保存。这使得提取的图片可以在各种环境中使用,而不仅仅局限于Flash平台。 3. **批量处理**...
格式工厂支持所有类型图片转换到JPG/BMP/PNG/TIF/ICO/GIF/TGA。 可以抓取DVD到视频文件,抓取音乐CD到音频文件。 MP4文件支持iPod/iPhone/PSP等指定格式。 格式工厂支持RMVB、水印、音视频混流。
格式工厂(format factory)是套... 所有类型图片转到JPG/BMP/PNG/TIF/ICO/GIF/TGA。 抓取DVD到视频文件,抓取音乐CD到音频文件。 MP4文件支持iPod/iPhone/PSP/黑莓/安卓HTC等指定格式。 支持RMVB,水印,音视频混流。
│BMP/GIF/JPG/PNG/PSD/AVI/ANI/CUR/ICO 甚至 SWF 格式。您│ │还可以用它剪切、缩放、旋转导入的图像文件,调整帧的次序 │ │和延迟时间,更改循环次数,并用多种方法对其进行优化,以 │ │减小文件体积。此外,...
格式工厂(format factory)是套... 所有类型图片转到JPG/BMP/PNG/TIF/ICO/GIF/TGA。 抓取DVD到视频文件,抓取音乐CD到音频文件。 MP4文件支持iPod/iPhone/PSP/黑莓/安卓HTC等指定格式。 支持RMVB,水印,音视频混流。
- **文件体积大:** RAW文件相比JPEG等格式体积较大,需要更多存储空间。 - **处理复杂:** 需要特定软件进行编辑和处理。 #### 六、有损与无损压缩概述 **有损压缩:** 有损压缩通过删除图像中的一些数据来减少...
支持图片转到JPG/BMP/PNG/TIF/GIF. MP4文件支持iPod/iPhone/PSP指定格式. 源文件支持RMVB. 【软件特色】 1. 支持几乎大多数类型多媒体格式到常用的格式. 2. 多媒体文件良好的压缩. 3. 支持iPhone/iPod/PSP等...
Magic Swf2Gif可以把 Macromedia ...利用 Magic Swf2Gif,你可以把 SWF 文件的全部帧或任意帧输出为一个 GIF 动画文件;捕捉任意一个帧为一个位图文件;或把 SWF 文件的全部帧或任意帧输出为 TGA 序列或 BMP 序列。
格式工厂是多功能的多媒体格式处理软件,支持...所有类型图片转到JPG/BMP/PNG/TIF/ICO/GIF/TGA。 抓取DVD到视频文件,抓取音乐CD到音频文件。 MP4文件支持iPod/iPhone/PSP/黑霉等指定格式。 支持RMVB,水印,音视频混流。
支持最流行的图像格式输出:视频转换为GIF动画等各种图像格式,包含:GIF,JPEG, JPG,BMP, PNG,TGA,TIFF, ICO, PCX。 转换视频到Seriate中的图片:提取视频文件的所有帧与方便单独的图像文件。拍摄的图像...