PHP Conference Japan 2024

getlastmod

(PHP 4, PHP 5, PHP 7, PHP 8)

getlastmod获取页面最后修改时间

描述

getlastmod(): int|false

获取执行主脚本的最后修改时间。

如果您想获取不同文件的最后修改时间,请考虑使用 filemtime()

参数

此函数没有参数。

返回值

返回当前页面的最后修改时间。返回的值是 Unix 时间戳,适合提供给 date()。错误时返回 false

示例

示例 #1 getlastmod() 示例

<?php
// 输出例如 'Last modified: March 04 1998 20:43:59.'
echo "Last modified: " . date ("F d Y H:i:s.", getlastmod());
?>

参见

添加注释

用户贡献的注释 5 条注释

luca dot delpivo at gmail dot com
12 年前
更准确地说,getlastmod() 返回调用它的脚本的最后修改时间,它不需要也不使用参数。
Moro
12 年前
返回所有包含文件的最新修改时间

<?php
function get_page_mod_time() {
$incls = get_included_files();
$incls = array_filter($incls, "is_file");
$mod_times = array_map('filemtime', $incls);
$mod_time = max($mod_times);

return
$mod_time;
}
?>
Ant P.
14 年前
如果您在某些 SAPI 上使用 register_shutdown_function(),则关闭函数中的各种与文件系统相关的事情可能会出现意外情况,其中一项就是此函数可能会返回 false。

另一方面,getlastmod() 显然会缓存返回值,因此如果您在普通代码中至少使用它一次,它应该在请求的剩余时间内有效。
rwruck
20 年前
除非您绝对确定您的 Apache 和 PHP 都已使用相同的 -DFILE_OFFSET_BITS 值进行编译,否则请勿使用此函数。

否则,由于 Apache 和 PHP 使用不同版本的 stat 结构,此函数将返回访问时间(或者甚至垃圾数据)而不是修改时间。

无论 Apache 和 PHP 版本如何,这都是正确的。

为安全起见,始终使用下面已发布的解决方法
filemtime($_SERVER['SCRIPT_FILENAME'])
匿名
20 年前
设置 'Last-Modified' 头
<?php
setlocale
(LC_TIME, "C");
$ft = filemtime ('referencefile');
$localt = mktime ();
$gmtt = gmmktime ();
$ft = $ft - $gmtt + $localt;
$modified = strftime ("%a, %d %b %Y %T GMT", $ft);
?>
To Top