Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP last modification time of the remote file

Tags:

php

curl

filetime

I want to get last modification time of the remote file. I am using this code I found here on 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
    }  

Problem with this code I am getting filetime = -1 all the time. But when I delete

curl_setopt($curl, CURLOPT_NOBODY, true);

then I am getting correct modification time.

Is it possible to get last modification time but with

curl_setopt($curl, CURLOPT_NOBODY, true);

included in the script. I just need header of the page, not body.

Thanks in advance

like image 313
kukipei Avatar asked Oct 08 '11 07:10

kukipei


People also ask

How can I get the last modified time of a file in PHP?

The filemtime() function returns the last time the file content was modified.

When was a file last modified?

Windows file properties You can also see the modified date by viewing the file properties. Right-click the file and select Properties. In the Properties window, the Created date, Modified date, and Accessed date is displayed, similar to the example below.

Which function is used to get the last modification time?

Using getlastmod() Function: The getlastmod() function is used to get the last modification time of the current page.


1 Answers

Given the added information in our Q/A discussion, it sure sounds like you're just not getting a response. It could be that the server is configured with some sort of which intentionally or inadvertently blocks HEAD requests for some reason, or there could be a difficult proxy involved.

When I'm debugging PHP cURL stuff, I often find it useful to use a *nix box (my mac, or ssh to a server) and run the requests from the command line, so I can see the result without worrying about if the PHP is doing the right thing, until I get the cURL part working. For instance:

$ 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
like image 74
Devin Ceartas Avatar answered Sep 29 '22 05:09

Devin Ceartas