ホームページ  >  記事  >  バックエンド開発  >  PHP でカールを使用してリモート ファイルの最終変更日を取得するにはどうすればよいですか?

PHP でカールを使用してリモート ファイルの最終変更日を取得するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-13 01:48:02211ブラウズ

How Can I Retrieve the Last Modified Date of a Remote File Using curl in PHP?

Curl を使用した PHP でのヘッダーのみの取得

ヘッダーのみの取得によるサーバー負荷の軽減

PHPとcurlを使用してWebコンテンツを取得する場合、次のことが可能ですヘッダーのみをフェッチするかページ全体をフェッチするかを指定します。ヘッダーのみのオプションを選択すると、ページ本文を生成して送信する必要がなくなるため、リモート サーバーで必要な処理能力と帯域幅が削減されます。

curl_getinfo による最終更新日の取得

リモート ファイルの最終変更日または If-Modified-Since ヘッダーを取得するには、curl_getinfo() を使用できます。最初の引数としてカール ハンドル (ヘッダー データではない) を渡し、2 番目の引数として CURLINFO_FILETIME を指定します。ただし、ファイル時間は常に利用できるわけではないことに注意することが重要であり、その場合は -1 として報告されます。

例: 最終更新日の取得

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

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

?>

追加考慮事項

URIInfo クラスは、コンテンツ タイプや ETag などの他のヘッダー情報を取得するメソッドで拡張できます。

以上がPHP でカールを使用してリモート ファイルの最終変更日を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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