ホームページ  >  記事  >  バックエンド開発  >  cURL のヘッダーのみの取得を使用してリモート ファイルの最終変更日を効率的に取得する方法

cURL のヘッダーのみの取得を使用してリモート ファイルの最終変更日を効率的に取得する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-11-16 02:51:03662ブラウズ

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 ヘッダー情報のみで応答するように指示します。 response.

最終変更日の取得

最終変更日を取得するには、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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。