首页 >后端开发 >php教程 >如何使用 cURL 在 PHP 中仅检索标头?

如何使用 cURL 在 PHP 中仅检索标头?

Patricia Arquette
Patricia Arquette原创
2024-11-10 12:02:02725浏览

How can I Retrieve Only Headers in PHP using cURL?

在 PHP 中通过 cURL 进行仅标头检索

本文解决了有关在 PHP 中使用 cURL 仅检索标头而不是检索标头的两个问题全页数据,重点关注处理效率和具体实施挑战。

处理效率

是的,与获取整个页面相比,仅检索标头时远程服务器上的处理能力和带宽消耗都会降低。这是因为服务器可以避免生成和解析 HTML 内容的开销,从而减轻负载。

检索文件修改日期

检索上次修改的日期远程文件的日期(Last-Modified 标头)或 If-Modified-Since 标头,可以执行以下步骤take:

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

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

这种方法利用一个类来封装获取标头信息和提取 Last-Modified 标头的功能。

实现挑战

您提供的原始代码尝试使用curl_getinfo($header)获取最后修改日期,这是不正确的。 curl_getinfo() 应与 cURL 句柄 ($curl) 一起使用来检索标头信息。此外,使用 CURLOPT_FILETIME 应该足以检索上次修改日期。

总之,在 PHP 中使用 cURL 进行仅标头检索可以潜在地减少服务器负载,同时允许您访问特定的标头信息。通过遵循上述指南,您可以在代码中有效地实现此功能。

以上是如何使用 cURL 在 PHP 中仅检索标头?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn