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

无法从shell脚本中的PHP标头获取上次修改,php,bash,shell,Php,Bash,Shell,我正在使用bashshell脚本从几个网页中检索上次修改的值(谢谢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" && "$m

我正在使用bashshell脚本从几个网页中检索上次修改的值(谢谢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上运行脚本时,输出为:Last Modified:Wed,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' );
?>


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

让我在这里补充一些细节。。。我是几个网站的站长,其中一些网站已经成为黑客和网络钓鱼者的目标。我想每天运行脚本几次(可能4次左右),以检测是否对网站进行了任何更改。这样,如果它显示了一个新的修改日期,而我没有做任何更改,那么我可以采取适当的措施。(当前日期和时间在这里不起作用,因为它总是显示站点已更改。)当我通过FTP进入站点时,Unix系统会更新修改日期,我希望通过脚本将该日期拉出。查看站点上次修改的日期是错误的做法。使用像Tripwire这样的ID。