如何根据上次修改日期回显目录中文本文件的内容?
How to echo out the contents of text files in a directory based on the date that it was last modified?
我创建了一个目录,其中包含以下文件:
- index.php
- one.txt - 你好
- two.txt - 好的
- three.txt - 再见
- four.txt - 酷
粗体字表示这些文本文件包含的内容。
我想做的是将文本文件的所有内容回显到 index.php 页面中。因此,当用户访问 index.php 页面时,他们将看到:
Date: 13 May 2015
Contents of text file: Hello
Date: 12 May 2015
Contents of text file: Ok
Date: 11 May 2015
Contents of text file: Goodbye
Date: 10 May 2015
Contents of text file: Cool
从上面可以看出,文本文件的创建日期及其内容都被回显了。此外,它们会根据上次修改的顺序回显。
这是我试图用来实现此目的的代码:
<?php
foreach (glob("*.txt") as $filename) {
echo "Date:";
echo date('d F Y', filemtime($filename)) .
"Contents of text file:";
echo file_get_contents($filename);
}
?>
这段代码中发生的事情是:
- 目录中的所有文本文件都被拾取
- 对于每个文本文件,它获取其最后修改日期及其包含的内容回显
这段代码的结果与上面黄色框中看到的类似(这是我想要实现的),但是回显的顺序不是按日期顺序排列。它得到了类似这样的回应:
- 5 月 13 日
- 5 月 10 日
- 5 月 11 日
- 5 月 12 日
我怎样才能让它根据上次修改的日期得到回显?最晚的日期在顶部,最早的日期在底部?
这样做:
<?php
foreach (glob("*.txt") as $filename) {
$result[date('Ymd', filemtime($filename))]=
"Date:".
date('d F Y', filemtime($filename)) .
"Contents of text file:".
file_get_contents($filename);
}
ksort($result);
echo implode("", $result);
?>
<?php
foreach (glob("*.txt") as $filename)
{
$time = filemtime($filename);
$files[$filename] = $time;
}
arsort($files);
foreach ($files as $file => $time)
{
"Contents of text file:";
echo file_get_contents($file);
}
?>
编辑:
感谢 Glavić 的提示。我更新了脚本,所以文件不会丢失。
我创建了一个目录,其中包含以下文件:
- index.php
- one.txt - 你好
- two.txt - 好的
- three.txt - 再见
- four.txt - 酷
粗体字表示这些文本文件包含的内容。
我想做的是将文本文件的所有内容回显到 index.php 页面中。因此,当用户访问 index.php 页面时,他们将看到:
Date: 13 May 2015
Contents of text file: HelloDate: 12 May 2015
Contents of text file: OkDate: 11 May 2015
Contents of text file: GoodbyeDate: 10 May 2015
Contents of text file: Cool
从上面可以看出,文本文件的创建日期及其内容都被回显了。此外,它们会根据上次修改的顺序回显。
这是我试图用来实现此目的的代码:
<?php
foreach (glob("*.txt") as $filename) {
echo "Date:";
echo date('d F Y', filemtime($filename)) .
"Contents of text file:";
echo file_get_contents($filename);
}
?>
这段代码中发生的事情是:
- 目录中的所有文本文件都被拾取
- 对于每个文本文件,它获取其最后修改日期及其包含的内容回显
这段代码的结果与上面黄色框中看到的类似(这是我想要实现的),但是回显的顺序不是按日期顺序排列。它得到了类似这样的回应:
- 5 月 13 日
- 5 月 10 日
- 5 月 11 日
- 5 月 12 日
我怎样才能让它根据上次修改的日期得到回显?最晚的日期在顶部,最早的日期在底部?
这样做:
<?php
foreach (glob("*.txt") as $filename) {
$result[date('Ymd', filemtime($filename))]=
"Date:".
date('d F Y', filemtime($filename)) .
"Contents of text file:".
file_get_contents($filename);
}
ksort($result);
echo implode("", $result);
?>
<?php
foreach (glob("*.txt") as $filename)
{
$time = filemtime($filename);
$files[$filename] = $time;
}
arsort($files);
foreach ($files as $file => $time)
{
"Contents of text file:";
echo file_get_contents($file);
}
?>
编辑:
感谢 Glavić 的提示。我更新了脚本,所以文件不会丢失。