弱弱的问一个小问题,关于死循环
Dec 01, 2016 am 12:57 AM
写一段死循环,为什么再浏览器直接就崩溃了,而在命令行下可以继续执行?只是因为走的协议不一样吗?求大神给个详细的解释。
<code>while(true){ echo 'a'; }</code>
回复内容:
写一段死循环,为什么再浏览器直接就崩溃了,而在命令行下可以继续执行?只是因为走的协议不一样吗?求大神给个详细的解释。
<code>while(true){ echo 'a'; }</code>
如果在浏览器端测试, 因为PHP有各种缓存
你可以先调用一下ob_end_flush
然后在循环中调用flush()
这样就会有内容出来了
不过 你还要考虑 php的默认的执行时间, 和浏览器的超时机制
cli模式下 PHP的执行时间默认是不受限制的, 而且也没有默认开启ob之类的功能
http://www.php100.com/manual/...
覆盖 php.ini 设置选项
implicit_flush
:在命令行模式下,所有来自 print 和 echo 的输出将被立即写到输出端,而不作任何地缓冲操作。如果希望延缓或控制标准输出,仍然可以使用 output buffering 设置项。
max_execution_time
:鉴于在外壳环境下使用 PHP 的无穷的可能性,最大运行时间被设置为了无限值。为 web 开发的应用程序可能只需运行几秒钟时间,而外壳应用程序的运行时间可能会长的多。
php.ini的max_execution_time指定了程序执行时间,如果超过了此设置,脚本返回一个致命的错误。默认值为30秒,而命令行不收此控制。
可以通过set_time_limit(0)
没有时间方面的限制

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian

Comment configurer Visual Studio Code (VS Code) pour le développement PHP
