我是PHP的初学者,正在尝试制作一个脚本,在一个文件中显示上次更新的日期,并在该文件下面显示我更新的其他页面的列表(按更新顺序)。举个例子,如果我上一次更新是在周二,我只编辑了我的新闻和索引页面,它会说
2013年8月6日-主页已更新。-新闻标题更新。
然后在下面会显示其他最新更新。。像这样:
2013年8月6日-主页已更新。-新闻标题更新。
2013年8月5日-员工更新。
2013年8月2日-主页已更新。-论坛更新。-已更新加入页面。
我还希望能够设置显示更新数量的限制。。我有一个朋友几年前就有了这个脚本,我记得他是通过一个.txt文件和CHMOD这个txt文件来获得写权限的。然后是updates.php,在我想生成更新状态的每一页上,我都会在文件顶部包含几行脚本。。另外,我会列出页面名称和我希望它在txt文件或更新文件中显示的内容,如index.php>主页更新。。。然而,我已经失去了与他的联系,他们没有办法找到我。我尝试了一下,得到了:
<?php
$pages = array(
'Main Page' => 'index3.php',
'Staff' => 'staff.php',
'News Headlines' => 'news.php',
);
$list = array();
foreach($pages as $page => $file) {
$date = filemtime($file);
if(!isset($list[$date])) { $list[$date] = array(); }
array_push($list[$date], $page);
}
krsort($list);
foreach($list as $date => $pages) {
echo date('F j, Y', $date) . "<br />'n";
foreach($pages as $page) {
echo "- $page Updated<br />'n";
}
}
?>
但这并不能正常工作,因为它开始了一个新的日期,即使我在同一天更新了两个文件。。。不管怎样,我只是想知道是否有人知道如何制作这个剧本?我急需得到它,所以任何帮助都会很好。。我真的不确定该怎么做,多年来我到处寻找想法。。。谢谢大家,我希望能收到回复:)
filemtime()将返回Unix时间戳,因此同一天的两次更新仍然是两个不同的时间戳。与其在回显日期时只使用date()来格式化日期,不如在将其保存到$date变量之前对其进行格式化:
foreach($pages as $page => $file) {
$date = date('Y/m/d', filemtime($file));
然后当你打印出来时:
echo date('F j, Y', strtotime($date)) . "<br />'n";