【问题标题】:Getting files from folder which uploaded in last 24 hours从最近 24 小时内上传的文件夹中获取文件
【发布时间】:2014-12-29 06:23:44
【问题描述】:

如何获取过去 24 小时内上传的图片(来自 x 目录)?

例如,/images/文件夹中有100张图片;但其中 10 个已在过去 24 小时内上传。我想通过上传时间从新到旧列出它们..

我怎样才能列出它们?

【问题讨论】:

    标签: php file-upload file-exists


    【解决方案1】:

    您可以使用 glob 包装器列出目录 X (PHP manual glob wrapper) 中的文件。 使用 filemtime 获取文件修改时间。

    【讨论】:

      【解决方案2】:

      filectime(),来自 PHP 文档:

      返回文件上次更改的时间,失败时返回 FALSE。时间作为 Unix 时间戳返回。

      您可以检查 filectime() 返回的时间戳是否大于前一天的时间戳。

      试试这个:

      <?php
      $path = '/path/to/dir/';
      $yesterday = strtotime("-1 day");
      if ($handle = opendir($path)) {
          while (false !== ($entry = readdir($handle))) {
              if (filectime($path.$entry) > $yesterday) {
                  echo filectime($path.$entry) . ":" . $entry . " "."\n";
              }
          }
          closedir($handle);
      }
      ?>
      

      上面的代码将只回显过去一天创建的文件。

      【讨论】:

      • 上次更新时间和上次上传/上次创建时间看起来不同;我需要通过上传时间排序.. 我不能使用任何东西而不是 filectime() 或 filemtime() 来按上传时间列出文件吗?
      • @user3283814 我相信这些是您最好的选择。看看这个答案,stackoverflow.com/a/5849725/2460773 如果它回答了你的问题,请告诉我。
      • 这将递归地完成这项工作:
      【解决方案3】:

      首先,您在数据库中创建一列序列号。那么您必须选择最大序列号为...

       <?php
      mysql_connect("localhost","phpuser","phppass");
      $db="databasename";
      mysql_select_db($db);
      
      $qd=mysql_query("select max(srl_num) from tablename");
      $lf=mysql_fetch_row($qd);
      $lf1=$lf[0];
      
      $qd=mysql_query("select * from  tablename where srl_num= '$lf1' ");
      $qd1=mysql_fetch_row($qd);
      
      $lfn=$qd1[0];
      
      $fn=$qd1[2];
      $fn2=$qd1[3];
      ?>
      

      并随心所欲地回显 $fn 和 fn2

      【讨论】:

        猜你喜欢
        • 2018-10-11
        • 1970-01-01
        • 2017-11-18
        • 2020-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多