无法从 shell 脚本中的 PHP 标头获取上次修改时间


Unable to get Last-Modified from PHP header in shell script

我正在使用 bash shell 脚本从多个网页中检索上次修改值(谢谢 Lri! 这是我正在使用的代码:

#!/bin/bash
url=http://www.mywebsite.com
tempdir=~/Library/Caches/scripts
temp=$tempdir/mywebsite
mkdir -p $tempdir
modified=$(curl -sI "$url" | grep ^Last-Modified)
if [[ -f "$temp" && "$modified" != "$(cat $temp)" ]]; then
terminal-notifier -message 'Example changed'
fi
printf %s "$modified" > $temp

当我在 index.html 上运行脚本时,输出为:上次修改时间:2013 年 11 月 6 日星期三 00:20:49 GMT(这是正确的)。

当我在 index.php 上运行脚本时,输出中没有任何内容。

有人可以向我解释我需要包含在.php页面或 shell 脚本中的代码以纠正问题吗? 谢谢!

Web 服务器可以根据.html文件的时间戳确定上次修改日期。

这不适用于 PHP 文件,因为 PHP 页面通常是动态的。在这些情况下,由开发人员确定构成逻辑修改的内容,并发送适当的标头。

下面是一个仅将上次修改时间设置为当前日期的示例:

<?PHP
header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' );
?>

对于博客,您可能希望将"上次修改时间"设置为页面上显示的最新更新文章的日期。对于天气预报,您可以将其设置为上次更新当前正在查看的位置的源数据的时间。