- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
现在默认按字母显示,我不希望那样。我想在顶部使用 RecursiveDirectoryIterator 最新文件对文件进行排序。按降序排列。
同时使用 if 条件比较日期并从该日期获取文件
<?php
$search_path = 'D:\xampp\htdocs';
$file_extension = 'php';
$it = new RecursiveDirectoryIterator("$search_path");
$display = Array ($file_extension);
foreach(new RecursiveIteratorIterator($it) as $file) {
$test = Array();
$test = explode("/",date("m/d/Y",filemtime($file)));
$year = $test[2];
$day = $test[1];
$month = $test[0];
if (in_array(strtolower(array_pop(explode('.', $file))), $display))
if(($year >= 2014) && ($month >= 1) && ($day >= 15 )){
echo "<span style='color:red;'>";
echo "<b style='color:green;'>".$day.'-'.$month.'-'.$year. '</b> ' . $file."</span><br>";
}
}
?>
最佳答案
我不知道您是否可以直接通过 DirectoryIterator
进行排序,您可以先收集结果,获取时间,然后排序,然后呈现它。示例:
$display = array('php');
$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($search_path));
$data = array();
foreach($files as $file) {
$time = DateTime::createFromFormat('U', filemtime($file->getPathname()));
// no need to explode the time, just make it a datetime object
if(in_array($file->getExtension(), $display) && $time > new DateTime('2014-01-15')) { // is PHP and is greater than jan 15 2014
$data[] = array('filename' => $file->getPathname(), 'time' => $time->getTimestamp()); // push inside
}
}
usort($data, function($a, $b){ // sort by time latest
return $b['time'] - $a['time'];
});
foreach ($data as $key => $value) {
$time = date('Y-m-d', $value['time']);
echo "
<span style='color: red;'>
<b style='color: green;'>$time</b>$value[filename]
</span>
<br/>
";
}
关于php - 按最新日期排序文件在顶部使用 RecursiveDirectoryIterator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26601631/
目前我有下面的代码,什么是我能够在下面的代码中设置标志以便我可以使用 ::SKIP_DOTS 的最佳方式? 代码: $folder = 'images/banner_img';?>
我目前有以下 PHP: $directoryIterator = new RecursiveDirectoryIterator( __DIR__ . '/tests/phpunit/' ); /**
我正在尝试使用 PHP 的 RecursiveDirectoryIterator 来列出一组目录。我遇到的问题是它似乎正在跳过它命中的任何空目录。任何想法如何让它列出空目录? 这是我正在使用的代码片段
现在默认按字母显示,我不希望那样。我想在顶部使用 RecursiveDirectoryIterator 最新文件对文件进行排序。按降序排列。 同时使用 if 条件比较日期并从该日期获取文件 =
我正在尝试用 PHP 编写代码以列出目录和子目录中的所有文件及其位置,为此我正在使用 RecursiveDirectoryIterator 类。但是当我 print_r 我的数组时,结果如下: Arr
我有一个具有这种结构的目录: 主要/ |- 图片/ |-- file1.jpg |-- file2.jpg |-- file3.jpg |- 文件/ |-- 私有(private)/ |--- bla
因此,在我学习 Java 编程书籍的过程中,为了进一步了解 Android 开发,我遇到了 JSONObject 和 JSONArray。经过一些研究后,我整理了一个 php 脚本来读取目标目录的内容
我有一个这样的递归目录迭代器: $theme_iterator = new RecursiveIteratorIterator( new RecursiveDirectoryIterator(
我想获取所有子目录的列表并且我的以下代码有效,除非我对某些文件夹具有只读权限。 在下面的问题中,它显示了如何使用 RecursiveDirectoryIterator 跳过目录 Can I make
我正在尝试读取我们服务器上的所有文件(>2M 文件)并使用 this example 取得了很大进展。 , 以使用 Regex 将其过滤为仅 PHP 和 HTML 文件。我的日子一直在尝试使用此 PH
我正在使用 RecursiveDirectoryIterator 和 RecursiveIteratorIterator 使用如下代码构建文件列表树。我需要对列表进行排序 - 目录然后按字母顺序排列文
foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator(".")) as $file) { echo "$file
我正在使用 PharData 创建一个 tar 包。它工作正常,但它包含一个我不想要的文件夹。如何排除存档中的文件夹? buildFromIterator($iterator, $dir); $pha
我一直在尝试在我的 windows7 64 位机器上使用 composer 更新/安装。但最近我收到了这个错误: $ php composer.phar install Loading compose
这是我的 php 脚本: $object){ echo $objects->getDepth() . " " . $object->getFilename() . ""; } ?
以下代码: $zip = new ZipArchive(); if ($zip->open('./archive.zip', ZIPARCHIVE::CREATE) !== TRUE) { d
我是一名优秀的程序员,十分优秀!