Yea*_*eak 28 php for-loop timedelay delayed-execution
在PHP中,我想在循环的每次迭代中放置一些第二延迟.
for ($i=0; $i <= 10; $i++) {
$file_exists=file_exists($location.$filename);
if($file_exists) {
break;
}
//sleep for 3 seconds
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
mav*_*ili 52
使用PHP sleep()功能.http://php.net/manual/en/function.sleep.php
这将停止执行下一个循环达到给定的秒数.所以这样的事情
for ($i=0; $i <= 10; $i++) {
$file_exists=file_exists($location.$filename);
if($file_exists) {
break;
}
sleep(3); // this should halt for 3 seconds for every loop
}
Run Code Online (Sandbox Code Playgroud)
Hus*_*man 13
我看到你在做什么......你推迟了一个脚本来不断检查文件系统上的文件(一个正在上传或由我假设的另一个脚本编写的文件).这是一个很糟糕的方法.
你可以使用Ajax.并使用超时来每隔几秒调用一次PHP脚本.这将避免加载缓慢的脚本.而且你也可以继续这样做(当前for循环只运行33秒然后停止).
您可以使用数据库.在某些情况下,数据库访问比HDD访问更快.特别是有视图和缓存.创建文件/上传文件的脚本可以在表中设置一个标志(即file_exists),然后您可以使用一个脚本来检查数据库中的该字段.