注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

@fc_lamp

关注Web应用解决方案MySql/PHP/Python一盏名为"飞川"的灯~

 
 
 

日志

 
 

python计时器,PHP ob_flush、flush每隔一秒输出  

2012-08-10 14:54:46|  分类: Web技术-应用研究 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
一 PHP语言:
在php里每隔一秒输出,分为在命令行模式下和通过WEB 服务器输出(即WEB输出)。
1 如果是在命令行模式下,以下代码即完成。

<?php
error_reporting ( 0 );
set_time_limit ( 0 );

#如果想查看output_buffering是否打开

#可以:var_dump(ini_get('output_buffering'));

#清除并关闭之前的缓冲区内容与缓冲区
ob_end_clean ();

#打开新的缓冲
ob_start();
$i = 10;
while ( $i > 0 )
{
$flush = $i."\n";
echo $flush;
ob_flush();
sleep ( 1 );
$i --;
}



如图python计时器,PHP ob_flush、flush每隔一秒输出 - fc_lamp - @fc_lamp


2 如果是通浏览器的方式,就比较麻烦
 

<?php
error_reporting ( 0 );
set_time_limit ( 0 );
ob_end_clean ();
ob_start ();
$i = 10;
while ( $i > 0 )
{
$flush = $i . "<br/>";

#Microsoft Internet Explorer 只有当接受到的256个字节以后才开始显示该页面,

#所以必须发送一些额外的空格来让这些浏览器显示页面内容
$flush = str_pad ( $flush, 1000 );
echo $flush;
ob_flush ();
flush ();
sleep ( 1 );
$i --;
}

如图:python计时器,PHP ob_flush、flush每隔一秒输出 - fc_lamp - @fc_lamp


 二 Python语言:
 在控制台下,代码如下:

#coding:utf-8

import time,sys

n = 10

for i in xrange(n,0,-1):

print i

sys.stdout.flush()

time.sleep(1)


 如图python计时器,PHP ob_flush、flush每隔一秒输出 - fc_lamp - @fc_lamp
 
另外使用Threading模块的Timer对象也可以实现计时器(类似JS里的setTimeOut())

import threading
def test():
global i
print i
t = threading.Timer(1,test)
t.start() #t.cancel()如果函数尚未执行,取消定时器
i+=1

i=1
test()

如图:
python计时器,PHP ob_flush、flush每隔一秒输出 - fc_lamp - @fc_lamp
 


另:ob_flush与flush的区别参看  http://www.laruence.com/2010/04/15/1414.html
  评论这张
 
阅读(1312)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017