设置post和break for循环


Isset post and break for loop

下面是这段代码

for ($p=1; $p<30000; $p++) {
    if(isset($_POST['stop_loop'])) {
       break;
    }
    loop do something
}

我的问题是如何停止循环后,我张贴stop_loop?

也许我应该使用die();但我试过了,但没有用,有什么办法吗?如果不是,也许Neal是对的

您将在代码开始处获得所有post值。

因此,如果POST是从那里开始的,那么for循环将永远不会执行。

你不能提交一个已经在执行的php文件

考虑使用某个文件作为信号量。然后,上面发布的for循环将在每次迭代时简单地检查该文件是否存在。如果存在,则停止循环。否则,继续处理

例如,以下伪代码可以工作:

if "post variable" = "stop loop"
    create file "stop loop"
else
    while file "stop loop" does not exist
        do something

似乎……痛苦的。

$stop_point = isset($_POST['stop_loop']) ? $_POST['stop_loop'] : 30000;
for ($p = 1; $p < $stop_point; $p++) {
    loop do something
}

?POST值是在脚本启动时设置的(实际上您已经向该脚本发送了一个表单),因此$_POST['stop_loop']的值在脚本的整个生命周期中不会改变。

如果你在"loop do something"

 $_POST['stop_loop'] = true;

用这种方法处理这个问题并不可行。您将需要两个脚本。一个运行循环,另一个发送到。

在第一个脚本中,您应该检查数据库或平面文件中是否存在某些内容。

第二个脚本应该使您正在检查的项。

例如:

script A检查文件,例如stopop .file当您将stop发送到脚本B时,它会创建文件stopploop .file

我不会完全这样做,因为所有这些文件检查会减慢脚本的速度,但你在这里明白了。