无法从shell脚本中的PHP标头获取Last-Modified

时间:2013-11-06 19:30:40

标签: php bash shell

我正在使用bash shell脚本从几个网页中检索Last-Modified值(感谢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脚本中包含的代码来解决问题吗?谢谢!

1 个答案:

答案 0 :(得分:0)

Web服务器可以根据.html文件的时间戳确定Last-Modified日期。

这对PHP文件不起作用,因为PHP页面通常是动态的。在这些情况下,由开发人员决定什么构成逻辑修改,并发送适当的头。

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

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

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