发信人: dalasthunder(Dallas)
整理人: dalasthunder(2002-07-25 06:09:11), 站内信件
|
目前为止,尚未找到获得远程主机的文件的建立时间的方法。
但是远程主机文件的最后修改时间是可以取得的。该信息包含在http response header中的Last-Modified字段中。但是对一些返回非标准header的web server可能无效,例如Apache Tomcat。
那么对远程主机发送一个请求,只要求取得该文件的header就可以了。
以下的函数用来取得header。
function remote_header($host,$path){
$fp = fsockopen ($host, 80, $errno, $errstr, 30);
if (!$fp) {
echo "ERROR: $errstr ($errno)\n";
} else {
fputs ($fp, "HEAD $path HTTP/1.0\r\n");
fputs($fp,"HOST: $host\r\n\r\n");
while (!feof($fp)) {
$header .= fgets($fp,4096);
}
fclose ($fp);
}
return $header;
}
然后就可以用以下的代码测试:
<?
$rh = remote_header("img.163.com","/club/uh/logo.gif");
echo "<pre>\n";
echo $rh;
?>
得到的结果如下:
HTTP/1.0 200 OK
Date: Fri, 05 Jul 2002 00:30:53 GMT
Server: Apache/1.3.12 (Unix)
Last-Modified: Sat, 03 Feb 2001 09:04:24 GMT
ETag: "37196f-392-3a7bc998"
Accept-Ranges: bytes
Content-Length: 914
Content-Type: image/gif
Age: 16097
X-Cache: HIT from bjca7
X-Cache-Lookup: HIT from bjca7:80
Connection: close
这里需要做一些字符串的分析才能取得最后修改时间。同时还需要判断返回值是不是200,否则结果就没有意义。
|
|