Writing an infinite loop, why does the browser crash directly, but it can continue to execute on the command line? Is it just because the agreement is different? Please give me a detailed explanation.
<code>while(true){ echo 'a'; }</code>
Writing an infinite loop, why does the browser crash directly, but it can continue to execute on the command line? Is it just because the agreement is different? Please give me a detailed explanation.
<code>while(true){ echo 'a'; }</code>
If you test on the browser side, because PHP has various caches
You can call ob_end_flush
first and then call flush() in the loop
This way, the content will come out
But you also need to consider the default execution time of PHP , and the browser’s timeout mechanism
In cli mode, the execution time of PHP is unlimited by default, and functions such as ob are not enabled by default
http://www.php100.com/manual/...
Override php.ini setting options
implicit_flush
: In command line mode, all output from print and echo will be written to the output port immediately without any buffering operation. If you wish to delay or control standard output, you can still use the output buffering setting.
max_execution_time
: Given the endless possibilities of using PHP in a shell environment, the maximum execution time is set to an infinite value. An application developed for the web may only take a few seconds to run, whereas a shell application may take much longer.
max_execution_time of php.ini specifies the program execution time. If this setting is exceeded, the script returns a fatal error. The default value is 30 seconds, and the command line does not control this.
You can pass set_time_limit(0)
There is no time limit