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 サイトの他の関連記事を参照してください。