Php 如何根据上次修改的日期回送目录中文本文件的内容?
我创建了一个目录,其中包含以下文件:Php 如何根据上次修改的日期回送目录中文本文件的内容?,php,date,echo,Php,Date,Echo,我创建了一个目录,其中包含以下文件: index.php one.txt-你好 two.txt-正常 three.txt-再见 four.txt-酷 所有粗体字都会告诉您这些文本文件包含的内容 我试图做的是将文本文件的所有内容回显到index.php页面中。因此,当用户访问index.php页面时,他们会看到: 日期:2015年5月13日文本文件内容:您好 日期:2015年5月12日文本文件内容:确定 日期:2015年5月11日文本文件内容:再见 日期:2015年5月10日文本文件内容:酷
- index.php
- one.txt-你好
- two.txt-正常
- three.txt-再见
- four.txt-酷
文本文件内容:确定 日期:2015年5月11日文本文件内容:再见 日期:2015年5月10日文本文件内容:酷 从上面可以看到,文本文件的创建日期及其内容都会显示出来。此外,它们会根据上次修改的顺序进行回显 这是我试图用来实现这一目标的代码:
<?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);
?>
编辑:
谢谢格拉维奇的提示。我更新了脚本,所以文件不会丢失。将消息收集到数组中,对其进行排序,然后进行回显。
Glob
不保证对返回的条目进行排序。您需要根据需要对它们进行排序。可能有用:。然后使用这些条目获取并显示文件内容。如果更多文件具有相同的修改时间,则会发生冲突,最后一个文件将仅可用。@GlavićThx获取提示!
<?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);
}
?>