要获取某个远程文件的修改日期,您可以使用 notepad at codewalker dot com 提供的优秀函数(经过 dma05 at web dot de 和 madsen at lillesvin dot net 的改进)。
但现在您可以使用 stream_get_meta_data(PHP>4.3.0)更轻松地实现相同的结果。
但是,如果发生重定向,可能会出现问题。在这种情况下,服务器 HTTP 响应不包含 Last-Modified 标头,但包含一个 Location 标头,指示在何处查找文件。下面的函数会处理任何重定向,即使是多个重定向,以便您找到要获取最后修改日期的真实文件。
你好
JJS。
<?php
function GetRemoteLastModified( $uri )
{
$unixtime = 0;
$fp = fopen( $uri, "r" );
if( !$fp ) {return;}
$MetaData = stream_get_meta_data( $fp );
foreach( $MetaData['wrapper_data'] as $response )
{
if( substr( strtolower($response), 0, 10 ) == 'location: ' )
{
$newUri = substr( $response, 10 );
fclose( $fp );
return GetRemoteLastModified( $newUri );
}
elseif( substr( strtolower($response), 0, 15 ) == 'last-modified: ' )
{
$unixtime = strtotime( substr($response, 15) );
break;
}
}
fclose( $fp );
return $unixtime;
}
?>