按日期在PHP中对文件进行排序我现在有一个index.php文件,它允许我输出同一个目录中的文件列表,输出显示名称,然后我使用filemtime()函数来显示文件修改时的日期。我现在的问题是,如何对输出进行排序以显示最新修改的文件?如果我是用MySQL交互来做这件事的话,那就没有问题了。请给我一个例子,如何排序和输出从最近修改的文件列表。这就是我现在所拥有的if ($handle = opendir('.')) {while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
$lastModified = date('F d Y, H:i:s',filemtime($file));
if(strlen($file)-strpos($file,".swf")== 4){
echo "<tr><td><input type=\"checkbox\" name=\"box[]\"></td><td><a href=\"$file\" target=\"_blank\">$file</a>
</td><td>$lastModified</td></tr>";
}
}
}
closedir($handle);}
3 回答
守着星空守着你
TA贡献1799条经验 获得超8个赞
$files = array();if ($handle = opendir('.')) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { $files[filemtime($file)] = $file; } } closedir($handle); // sort ksort($files); // find the last modification $reallyLastModified = end($files); foreach($files as $file) { $lastModified = date('F d Y, H:i:s',filemtime($file)); if(strlen($file)-strpos($file,".swf")== 4){ if ($file == $reallyLastModified) { // do stuff for the real last modified file } echo "<tr><td><input type=\"checkbox\" name=\"box[]\"></td><td><a href=\"$file\" target=\"_blank\">$file</a> </td><td>$lastModified</td></tr>"; } }}
萧十郎
TA贡献1815条经验 获得超13个赞
$files = glob('path/to/files/*.swf');usort($files, function($a, $b) { return filemtime($a) < filemtime($b);});
usort($files, create_function('$a,$b', 'return filemtime($a)<filemtime($b);'));
usort
foreach($files as $file){ printf('<tr><td><input type="checkbox" name="box[]"></td> <td><a href="%1$s" target="_blank">%1$s</a></td> <td>%2$s</td></tr>', $file, // or basename($file) for just the filename w\out path date('F d Y, H:i:s', filemtime($file)));}
filemtime
互换的青春
TA贡献1797条经验 获得超6个赞
$output = array();foreach( new RecursiveIteratorIterator( new RecursiveDirectoryIterator( 'path', FilesystemIterator::SKIP_DOTS | FilesystemIterator::UNIX_PATHS ) ) as $value ) { if ( $value->isFile() ) { $output[] = array( $value->getMTime(), $value->getRealPath() ); }}usort ( $output, function( $a, $b ) { return $a[0] > $b[0];});
- 3 回答
- 0 关注
- 640 浏览
添加回答
举报
0/150
提交
取消