PHP最后修改远程文件的时间

kuk*_*pei 7 php curl filetime

我想获得远程文件的最后修改时间.我正在使用我在stackoverflow上找到的代码

$curl = curl_init();

    curl_setopt($curl, CURLOPT_URL,$url);
    //don't fetch the actual page, you only want headers
    curl_setopt($curl, CURLOPT_NOBODY, true);
    curl_setopt($curl, CURLOPT_HEADER, true);
    //stop it from outputting stuff to stdout
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

    // attempt to retrieve the modification date
    curl_setopt($curl, CURLOPT_FILETIME, true);

    $result = curl_exec($curl);
    echo $result;
    $info = curl_getinfo($curl);
    print_r($info);
    if ($info['filetime'] != -1) { //otherwise unknown
        echo date("Y-m-d H:i:s", $info['filetime']); //etc
    }  
Run Code Online (Sandbox Code Playgroud)

这段代码的问题我一直在获得filetime = -1.但是当我删除

curl_setopt($curl, CURLOPT_NOBODY, true);
Run Code Online (Sandbox Code Playgroud)

然后我得到正确的修改时间.

是否有可能获得最后修改时间但是

curl_setopt($curl, CURLOPT_NOBODY, true);
Run Code Online (Sandbox Code Playgroud)

包含在脚本中.我只需要页面的标题,而不是正文.

提前致谢

Dev*_*tas 4

鉴于我们的问答讨论中添加的信息,听起来您确实没有得到回复。可能是服务器配置了某种出于某种原因有意或无意阻止 HEAD 请求的服务器,或者可能涉及到困难的代理。

当我调试 PHP cURL 内容时,我经常发现使用 *nix 盒子(我的 mac 或 ssh 到服务器)并从命令行运行请求非常有用,这样我就可以看到结果,而不必担心是否PHP 正在做正确的事情,直到我让 cURL 部分工作。例如:

$ curl --head stackoverflow.com

HTTP/1.1 200 OK
Cache-Control: public, max-age=49
Content-Length: 190214
Content-Type: text/html; charset=utf-8
Expires: Mon, 10 Oct 2011 07:22:07 GMT
Last-Modified: Mon, 10 Oct 2011 07:21:07 GMT
Vary: *
Date: Mon, 10 Oct 2011 07:21:17 GMT
Run Code Online (Sandbox Code Playgroud)