Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP睡眠,但在睡眠前执行_Php_Sleep - Fatal编程技术网

PHP睡眠,但在睡眠前执行

PHP睡眠,但在睡眠前执行,php,sleep,Php,Sleep,所以我需要一些帮助,有没有更好的方法让php在执行下一行代码之前等待 我试过: $response = $_POST[response]; echo "</br>".$response; if (strpos($response,'no') !== false) { sleep(2); echo "</br>"; echo 'Why not?'; } $response=$\u POST[response]; 回显“”$响应; if(strpos

所以我需要一些帮助,有没有更好的方法让php在执行下一行代码之前等待

我试过:

$response = $_POST[response];
echo "</br>".$response;
if (strpos($response,'no') !== false) {
    sleep(2);
    echo "</br>";
    echo 'Why not?';
}
$response=$\u POST[response];
回显“
”$响应; if(strpos($response,'no')!==false){ 睡眠(2); 回声“
”; 回应“为什么不?”; }
但此方法不显示

echo "</br>".$response;
echo“
”$response;
在它睡觉之前。 它休眠2秒钟,然后显示响应

我如何让它回显$response,然后等待2秒钟,然后is才会说“为什么不”


提前感谢。

您必须使用刷新缓冲区内容才能查看结果

@apache_setenv('no-gzip',1);
@ini_集('zlib.output_compression',0);
ob_start();
$response=$_POST[response];
回显“
.”$response; ob_flush(); 冲洗(); if(strpos($response,'no')!==false){ 睡眠(2); 回声“
”; 回应“为什么不?”; }
如中所述,我同时使用了
ob\u flush()
flush()
,但请看哪种方法有效。有时仅使用
flush()
也可以,具体取决于服务器配置


注意gzip/deflate。不能收缩输出流,在中间输出缓冲区。您可以使用htaccess关闭它,也可以使用代码的前两行关闭它,您必须使用flush the buffer content来查看结果

@apache_setenv('no-gzip',1);
@ini_集('zlib.output_compression',0);
ob_start();
$response=$_POST[response];
回显“
.”$response; ob_flush(); 冲洗(); if(strpos($response,'no')!==false){ 睡眠(2); 回声“
”; 回应“为什么不?”; }
如中所述,我同时使用了
ob\u flush()
flush()
,但请看哪种方法有效。有时仅使用
flush()
也可以,具体取决于服务器配置


注意gzip/deflate。不能收缩输出流,在中间输出缓冲区。您可以使用htaccess关闭它,也可以使用代码的前两行关闭它。看起来,在休眠调用之前,输出缓冲区没有被刷新。正如奔腾10所指出的那样,您确实可以手动控制它:

看起来输出缓冲区在睡眠调用之前没有被刷新。正如奔腾10所指出的那样,您确实可以手动控制它:

刷新缓冲区(更新):


引用:,

刷新缓冲区(更新):


参考资料:,

试试这个:试试这个:这会为我同时输出两个。这两个输出同时为我。
<?
$response = $_POST[response];
echo "</br>".$response;
ob_end_flush();
flush();
if (strpos($response,'no') !== false) {
    sleep(2);
    echo "</br>";
    echo 'Why not?';
}
?>