在 PHP 中,我想在循环的每次迭代中放置一些秒延迟。
for ($i=0; $i <= 10; $i++) {
$file_exists=file_exists($location.$filename);
if($file_exists) {
break;
}
//sleep for 3 seconds
}
我怎样才能做到这一点?
在 PHP 中,我想在循环的每次迭代中放置一些秒延迟。
for ($i=0; $i <= 10; $i++) {
$file_exists=file_exists($location.$filename);
if($file_exists) {
break;
}
//sleep for 3 seconds
}
我怎样才能做到这一点?
使用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
}
我明白你在做什么......你延迟脚本以不断检查文件系统上的文件(我假设正在上传或由另一个脚本编写的文件)。这是一种不好的方法。
你可以使用 Ajax。并使用超时每隔几秒钟调用一次您的 PHP 脚本。这将避免缓慢的脚本加载。你也可以不断地这样做(当前的 for 循环只会运行 33 秒然后停止)。
您可以使用数据库。在某些情况下,数据库访问比 HDD 访问更快。尤其是视图和缓存。创建文件/上传文件的脚本可以在表中设置一个标志(即file_exists),然后您可以有一个脚本来检查数据库中的该字段。
您可以使用sleep(3)
which 使线程休眠 3 秒。
修正php 中的sleep 方法是以秒为单位的。
野兔有两种方法可以让 php 脚本休眠一段时间。当您有代码并想暂停脚本工作一段时间时,请使用这些功能。在这些示例中,第一部分代码将在脚本运行时完成,第二部分代码将在时间延迟下完成。
例子:
echo "Message 1";
// The first part of code.
$timeInSeconds = 3;
sleep($timeInSeconds);
// The second part of code.
echo "Message 2";
这样就可以让 php 脚本休眠 3 秒。使用此功能,您可以将脚本休眠整数(整数)秒。
例子:
echo "Message 1";
// The first part of code.
$timeInMicroSeconds = 2487147;
usleep($timeInMicroSeconds);
// The second part of code.
echo "Message 2";
如果您想让 php 的时间值小于秒(浮点数),则可以使用此功能。在这个例子中,我让脚本休眠了 2.487147 秒。
您是否考虑过使用supervisorD使用 PHP 守护程序脚本。我在需要一直运行的多个任务中使用它。
关键是确保每次运行脚本时检查内存资源。如果它太高,请停止该过程,然后让它重新启动。
我已成功使用此过程来始终检查数据库记录以查找要处理的任务。
这可能有点矫枉过正,但值得考虑。