在一个比较费时的操作中,想把操作记录在浏览器上实时显示出来,用到了flush(),把缓冲中的内容发送到浏览器。但在iis7里面用fastcgi模式配置的php怎么都实现不了,结果总是一起显示出来。
for ($i=10; $i>0; $i--) { echo $i.'<br />'; @ob_flush(); flush(); sleep(1); }
上面的代码在IIS的默认设置下是无法逐渐显示结果的。解决办法如下:
打开文件 C:\Windows\System32\inetsrv\config\applicationHost.config ,注意如果你的是64位系统,这个文件就必须用64位的编辑软件打开,32位的软件打开会提示文件不存在,就用系统自带的notepad记事本打开就可以了。找到下面这一段,加入红色的那段代码就行了,也就是php这个handler里面加上responseBufferLimit="0"。
<handlers accessPolicy="Read, Script"> <add name="PHP_via_FastCGI" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="E:\PHP\php-cgi.exe" resourceType="Either" responseBufferLimit="0" />
现在你可以试一下,如果还是不行的话把php.ini里面的output_buffering = Off。
最后一点很重要,在不同的浏览器中,也用有不一样的结果。IE里面应该没什么问题了,如果是用chrome的话,每个echo出来的内容必须带有html,不然也是不行的,还有如果echo的内容太短也是实现不了这个效果的,可以在代码前先输出一段空格,如:echo str_pad(' ', 1050); chrome好像要先输出1000多个字符才会有这个效果,不行的话自己多尝试。
本文向大家介绍PHP实现即时输出、实时输出内容方法,包括了PHP实现即时输出、实时输出内容方法的使用技巧和注意事项,需要的朋友参考一下 老生长谈了。。纯备忘 对于运行时间较长的PHP程序来说可能都需要即时输出内容来查看运行情况。 例, 按例子测试,达到了PHP即时实时输出内容的效果。
问题内容: 我只是在Linux服务器上试验PHP 。这是一个非常酷的功能,到目前为止,我真的很喜欢它。有没有办法查看命令运行时正在进行的实时输出? 例如,如果运行时正在ping通目标地址,则每次ping通时,都使用PHP显示结果吗?那可能吗? 我希望看到缓冲区正在运行时进行实时更新。也许不可能,但肯定会很好。 这是我正在尝试的代码,我尝试过的所有方式都始终在命令完成后显示结果。 我尝试过将零件循环
本文向大家介绍php打印输出棋盘的实现方法,包括了php打印输出棋盘的实现方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php打印输出棋盘的两种实现方法。分享给大家供大家参考。具体实现方法如下: 例子1,代码如下: 例子2 简单实现棋盘-for循环 实现这个棋盘首先我们想想棋盘是怎么样的,是有很多个方格组成,然后由黑色和白色的相间的方格组成,首先我们先把方格画出来,代码如下: 看到上
我想让我的PHP输出一个简单的图像,但当我这样做的时候,它给我一个白色的正方形,所以我以为IMG是找不到的,但当我放一个简单的HTML IMG标签,它就可以找到,代码非常简单。同样,如果我尝试从互联网上的图像,它也不会起作用。
本文向大家介绍php输出全球各个时区列表的方法,包括了php输出全球各个时区列表的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php输出全球各个时区列表的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的php程序设计有所帮助。
本文向大家介绍php输出指定时间以前时间格式的方法,包括了php输出指定时间以前时间格式的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php输出指定时间以前时间格式的方法。分享给大家供大家参考。具体分析如下: 比如说你需要在php中输出3天前,20分钟以前,可以参考下面的代码 希望本文所述对大家的php程序设计有所帮助。