One thing you can try is to use fopen() to request the file, then look at $http_response_header or stream_register_wrapper() to examine the headers of the response. If the server has chose to include a last-modified header, you could use that.
The drawback is that the server doesn't have to supply such a header, and if the file is generated from a database when it is requested, it might give the time the request was made as the time the file was created or "modified".