本文将介绍 PHP 中 sleep 功能的实际实现。
PHP 中的 sleep()
函数
PHP 的 sleep()
函数用于将执行延迟指定时间。它接受一个将时间作为整数而不是负值的参数。
该函数在成功时返回 0,在失败时返回 false 或错误。让我们看看下面示例中的工作代码。
<?php
echo date("h:i:s") . "<br>";
sleep(5);
echo date("h:i:s") . "<br>";
输出:
11:04:58
11:05:03
在这里,打印的第一个时间戳是 11:04:58
。然后,sleep()
函数将程序暂停五秒钟。
因此,打印的第二个时间戳是 11:05:03
,与前一个时间戳相差五秒。
在 PHP 中使用 sleep()
函数
我们可以在从 API 请求数据时使用 sleep()
函数。当我们不断地请求大量数据时,服务器可能会负载过重。
在这种情况下,我们可以使用 sleep()
函数将连续请求暂停几秒钟。我们可以利用 file_get_contents()
函数从 API 获取请求。
该函数接受参数 $filename
、文件或 URL。它读取文件并将其作为字符串返回。
例如,创建一个变量 $url
并将 URL https://jsonplaceholder.typicode.com/albums/
存储在其中。接下来,创建一个 for
循环,将 $i
变量从 1
迭代到 4
。
接下来,将 $url
与迭代器 $i
连接起来,以便在第一次迭代中 URL 变为 https://jsonplaceholder.typicode.com/albums/1
。在 $next_url
变量中分配连接操作。
URL 将其后缀增加 1 以在连续迭代中获取连续的 API 内容。接下来,创建一个 $file
变量并使用 file_get_contents()
函数将其分配,并以 $next_url
作为参数。
接下来,打印 API 响应并使用 sleep(1)
函数在连续请求之间停止数据获取一秒钟。
这样,我们使用 sleep()
函数在每个请求之间停止对 API 的请求一秒钟。在这里,为了演示,我们只循环了四次。
当我们获得大量数据时,使用 sleep()
函数会更实用。
<?php
$url = "https://jsonplaceholder.typicode.com/albums/";
for( $i = 1; $i <5; $i++){
$next_url = $url.$i;
$file=file_get_contents($next_url);
echo "<pre>";
print_r($file);
echo "<pre/>";
sleep(1);
}
?>
输出:
{
"userId": 1,
"id": 1,
"title": "quidem molestiae enim"
}
{
"userId": 1,
"id": 2,
"title": "sunt qui excepturi placeat culpa"
}
{
"userId": 1,
"id": 3,
"title": "omnis laborum odio"
}
{
"userId": 1,
"id": 4,
"title": "non esse culpa molestiae omnis sed optio"
}