在 PHP 中使用 sleep() 函式

Subodh Poudel 2023年1月30日
  1. PHP 中的 sleep() 函式
  2. 在 PHP 中使用 sleep() 函式
在 PHP 中使用 sleep() 函式

本文將介紹 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"
}
作者: Subodh Poudel
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

相關文章 - PHP Function