按日期在PHP中對文件進行排序我現(xiàn)在有一個index.php文件,它允許我輸出同一個目錄中的文件列表,輸出顯示名稱,然后我使用filemtime()函數(shù)來顯示文件修改時的日期。我現(xiàn)在的問題是,如何對輸出進行排序以顯示最新修改的文件?如果我是用MySQL交互來做這件事的話,那就沒有問題了。請給我一個例子,如何排序和輸出從最近修改的文件列表。這就是我現(xiàn)在所擁有的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條經(jīng)驗 獲得超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條經(jīng)驗 獲得超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條經(jīng)驗 獲得超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 關(guān)注
- 664 瀏覽
添加回答
舉報
0/150
提交
取消