这里有新鲜出炉的 PHP 教程,程序狗速度看过来!
PHP(外文名: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言。语法吸收了 C 语言、Java 和 Perl 的特点,入门门槛较低,易于学习,使用广泛,主要适用于 web 开发领域。PHP 的文件后缀名为 php。
这篇文章主要介绍了 php flush 无效, IIS7 下 php 实时输出的方法, 需要的朋友可以参考下
在一个比较费时的操作中,想把操作记录在浏览器上实时显示出来,用到了 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 多个字符才会有这个效果,不行的话自己多尝试。
来源: http://www.phperz.com/article/17/0805/342933.html