我有这样的东西:
<?php
$perform_check = 1; #Checks data with ID : 1
while(true)
{
#code
}
?>
但是这个过程中必须更新一些数据,是否可以从另一个文档更新这些数据?
我尝试过这样的事情:
index.php
<?php
setcookie("data", 19, time()+3600);
?>
和
循环.php
<?php
while(true)
{
if($perform_check!=$_COOKIE[data]) $perform_check = $_COOKIE[data];
#rest of code
flush();
sleep(0.3);
}
?>
但是这不起作用。我还尝试了 $_SESSION
,但页面在 session_start()
上崩溃。
有可能吗?
最佳答案
Cookie 以 HTTP header 形式发送当 PHP 通过 Web 服务器(例如 Apache2)发送响应时。
所有 HTTP header 均在任何输出之前发送。如果您输出任何内容,则会在输出之前发送 header (包括 set-cookie header )。
第一次flush()
后,您将无法再设置cookie或其他 header 。
如果您想要进度指示器或更新,您需要使用 JavaScript 启动您正在执行的任何操作,并定期进行轮询。在循环过程中,您需要将进度保存在共享内存、文件或数据库中(按优先顺序),然后使用由 javascript 进度检查/更新检查启动的过程读取该数据。
关于php - 如何在 PHP 无限循环中更新页面变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10935613/