我有一个PHP脚本:
<?php set_time_limit(100); // set the maximum execution time to 60 seconds while (1>0){ echo 'Script execution completed.'; sleep(10); } ?>
它在终端上执行得很好,但在Firefox上甚至没有加载该怎么办?我已经在php.ini中设置了max_execution_time为100,但没有帮助
php.ini
9o685dep1#
这很可能是输出缓冲区问题。当Web浏览器请求页面时,它希望在一定的时间内从服务器收到响应。如果响应时间过长,浏览器可能会给予并停止等待服务器响应。默认情况下,输出缓冲在PHP中是禁用的,这意味着脚本生成的任何输出都会在生成后立即直接发送到客户端。但是,您可以使用ob_start()函数启用输出缓冲,该函数启动输出缓冲。启用输出缓冲后,脚本生成的任何输出都将存储在缓冲区中,而不是直接发送到客户端。然后,您可以使用各种函数,如ob_get_contents(),ob_end_clean()或ob_flush()来操作缓冲区并将输出发送到客户端。ob_flush()函数用于刷新输出缓冲区的内容,并将其立即发送到客户端。此函数将当前输出缓冲区中的任何数据发送到客户端,并清除缓冲区。但是,在echo之后你可以使用
flush(); //Flush the buffer to send the message to browser ob_flush();
希望这会有帮助!!
1条答案
按热度按时间9o685dep1#
这很可能是输出缓冲区问题。当Web浏览器请求页面时,它希望在一定的时间内从服务器收到响应。如果响应时间过长,浏览器可能会给予并停止等待服务器响应。
默认情况下,输出缓冲在PHP中是禁用的,这意味着脚本生成的任何输出都会在生成后立即直接发送到客户端。但是,您可以使用ob_start()函数启用输出缓冲,该函数启动输出缓冲。
启用输出缓冲后,脚本生成的任何输出都将存储在缓冲区中,而不是直接发送到客户端。然后,您可以使用各种函数,如ob_get_contents(),ob_end_clean()或ob_flush()来操作缓冲区并将输出发送到客户端。
ob_flush()函数用于刷新输出缓冲区的内容,并将其立即发送到客户端。此函数将当前输出缓冲区中的任何数据发送到客户端,并清除缓冲区。
但是,在echo之后你可以使用
希望这会有帮助!!