要获取某些远程文件的修改日期,您可以使用 codewalker dot com 的 notepad 编写的优秀函数(由 web dot de 的 dma05 和 lillesvin dot net 的 madsen 改进)。
但是现在您可以使用 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;
}
?>