当与用户的连接很慢时,PHP脚本的执行是否会停止


Does the execution of a PHP script halts when the connection wih the user is slow?

让我们想象一下这样的情况:

<?php
session_start();
someFunction();
?>
<html>
<head>The headers...</head>
<body>Loooooots of content</body>
</html>
<?
executeSomething();
?>

如果与客户端的连接很慢,并且HTML部分很大,所以传输需要很长时间,那么第二个PHP块executeSomething();会挂起直到HTML完全传输?

否。PHP处理器将执行HTML文件的所有PHP部分,只有在完成之后,他才会开始向用户发送完整的HTML数据。

但是,如果您愿意,您可以在PHP处理器仍在使用ob_flush()处理PHP时发送一些HTML数据。然后,您的脚本将运行,直到达到时间限制。

要使用ob_flush(),您必须首先初始化它:ob_start()。然后,您可以使用所需的ob_-函数将缓冲的数据发送给用户。