Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何根据上次修改的日期回送目录中文本文件的内容?_Php_Date_Echo - Fatal编程技术网

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-
所有粗体字都会告诉您这些文本文件包含的内容

我试图做的是将文本文件的所有内容回显到index.php页面中。因此,当用户访问index.php页面时,他们会看到:

日期:2015年5月13日文本文件内容:您好

日期:2015年5月12日
文本文件内容:确定

日期: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);
}

?>