首頁  >  文章  >  後端開發  >  如何使用 cURL 的僅標頭檢索有效檢索遠端檔案的上次修改日期?

如何使用 cURL 的僅標頭檢索有效檢索遠端檔案的上次修改日期?

Barbara Streisand
Barbara Streisand原創
2024-11-16 02:51:03659瀏覽

How to Efficiently Retrieve Last Modified Date of a Remote File using cURL's Header-Only Retrieval?

透過cURL 在PHP 中進行僅標頭檢索

為了有效檢索文件元數據,例如上次修改日期,請考慮使用cURL 的標頭-僅有檢索功能。此方法可以顯著降低遠端伺服器上的處理能力和頻寬消耗。

要只檢索標頭,您可以在cURL 請求中設定以下選項:

curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl, CURLOPT_NOBODY, true);

這告訴cURL發送HEAD 請求,指示伺服器僅使用HTTP 標頭資訊回應,省略回應的實際正文。

上次修改日期檢索

至要取得最後修改日期,可以使用curl_getinfo()從cURL帳號擷取FILETIME資訊。這是一個範例:

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "http://url/file.xml");
curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl, CURLOPT_FILETIME, true);
curl_setopt($curl, CURLOPT_NOBODY, true);
curl_exec($curl);
$filetime = curl_getinfo($curl, CURLINFO_FILETIME); // Returns timestamp of last modification
curl_close($curl);

範例程式碼

這是一個更完整的範例,使用cURL 擷取並顯示遠端檔案的上次修改日期:

class URIInfo {
    public $info;
    public $header;
    private $url;

    public function __construct($url) {
        $this->url = $url;
        $this->setData();
    }

    public function setData() {
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $this->url);
        curl_setopt($curl, CURLOPT_FILETIME, true);
        curl_setopt($curl, CURLOPT_NOBODY, true);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_HEADER, true);
        $this->header = curl_exec($curl);
        $this->info = curl_getinfo($curl);
        curl_close($curl);
    }

    public function getFiletime() {
        return $this->info['filetime'];
    }

    // Other functions can be added to retrieve other information.
}

$uri_info = new URIInfo('http://example.com/index.html');
$filetime = $uri_info->getFiletime();
if ($filetime != -1) {
    echo date('Y-m-d H:i:s', $filetime);
} else {
    echo 'Filetime not available';
}

以上是如何使用 cURL 的僅標頭檢索有效檢索遠端檔案的上次修改日期?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn