通过 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中文网其他相关文章!