首頁  >  文章  >  後端開發  >  如何使用 cURL 在 PHP 中僅檢索標頭?

如何使用 cURL 在 PHP 中僅檢索標頭?

Patricia Arquette
Patricia Arquette原創
2024-11-10 12:02:02657瀏覽

How can I Retrieve Only Headers in PHP using cURL?

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

本文解決了有關在PHP 中使用cURL 僅檢索標頭而不是檢索標頭的兩個問題全頁數據,重點在於處理效率和具體實施挑戰。

處理效率

是的,遠端伺服器上的處理能力和頻寬消耗都有所降低與獲取整個頁面相比,僅檢索標題時。這是因為伺服器可以避免產生和解析 HTML 內容的開銷,從而減輕負載。

檢索文件修改日期

檢索上次修改的日期遠端文件的date(Last-Modified 標頭)或If-Modified-Since 標頭,可以採取以下步驟:

<?php
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'];
    }
}

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

這種方法利用一個類別來封裝取得標頭資訊的功能,以及擷取Last-Modified 標頭。

實作挑戰

您提供的原始程式碼嘗試使用curl_getinfo($header) 取得最後一個修改日期,這是不正確的。 curl_getinfo() 應與 cURL 句柄 ($curl) 一起使用來檢索標頭資訊。此外,使用 CURLOPT_FILETIME 應該足以檢索上次修改日期。

總之,在 PHP 中使用 cURL 進行僅標頭檢索可以潛在地減少伺服器負載,同時允許您存取特定的標頭資訊。透過遵循上述指南,您可以在程式碼中有效地實現此功能。

以上是如何使用 cURL 在 PHP 中僅檢索標頭?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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