透過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中文網其他相關文章!