如何以「上次修改日期」順序列出目錄中的文件? (Linux上的PHP5)PHP:有序的目錄列表
4
A
回答
14
function newest($a, $b)
{
return filemtime($a) - filemtime($b);
}
$dir = glob('files/*'); // put all files in an array
uasort($dir, "newest"); // sort the array by calling newest()
foreach($dir as $file)
{
echo basename($file).'<br />';
}
貸記goes here。
0
嘗試在谷歌上的相同查詢,你會得到更快的答案。乾杯。 http://php.net/manual/en/function.filemtime.php
0
1
一個解決辦法是:
- 遍歷該目錄中的文件 - 使用
DirectoryIterator
,例如 - 對於每個文件,得到其最後修改時間,使用
SplFileInfo::getMTime
- 將所有這些放在一個數組中:
- 文件名作爲關鍵字
- 修改倍值
- 和數組排序,無論使用哪種
asort
或arsort
- 這取決於您要在其中文件的順序。
例如,這部分程序:
$files = array();
$dir = new DirectoryIterator(dirname(__FILE__));
foreach ($dir as $fileinfo) {
if (!$fileinfo->isDot()) {
$files[$fileinfo->getFilename()] = $fileinfo->getMtime();
}
}
arsort($files);
var_dump($files);
給我:
array
'temp.php' => int 1268342782
'temp-2.php' => int 1268173222
'test-phpdoc' => int 1268113042
'notes.txt' => int 1267772039
'articles' => int 1267379193
'test.sh' => int 1266951264
'zend-server' => int 1266170857
'test-phing-1' => int 1264333265
'gmaps' => int 1264333265
'so.php' => int 1264333262
'prepend.php' => int 1264333262
'test-curl.php' => int 1264333260
'.htaccess' => int 1264333259
即在我的腳本保存在目錄中的文件列表,用最最近在名單的開頭進行了修改。
3
通過使用readdir
將數組連同filemtime
保存在一個目錄中讀取目錄中的文件。根據此值對數組進行排序,然後獲得結果。
相關問題
- 1. 未排序的目錄列表中PHP
- 2. PHP的目錄列表
- 3. PHP的遞歸目錄列表 - 目錄只有
- 4. PHP根目錄列表
- 5. PHP目錄列表問題?
- 6. php獲取所有子目錄和所有文件的列表
- 7. iOS列表現有目錄
- 8. 使用PHP的目錄列表
- 9. PHP的FTP遞歸目錄列表
- 10. 按字母順序排列並顯示目錄列表PHP
- 11. 目錄列表
- 12. 停止在PHP網站中沒有.htaccess的目錄列表
- 13. 目錄中的PHP列表文件,並帶有刪除選項
- 14. PHP列表目錄和文件
- 15. PHP目錄列表代碼故障
- 16. PHP目錄列表不起作用
- 17. Php遞歸目錄列表流程
- 18. html或php目錄文件列表
- 19. 用PHP返回目錄列表
- 20. PHP目錄到表
- 21. LibCurl子目錄的FTP目錄列表
- 22. 得到多個目錄從一個有序列表中的LINQ
- 23. 使用RecursiveDirectoryIterator排序目錄列表
- 24. htaccess目錄列表
- 25. * FASTEST *目錄列表
- 26. 目錄樹列表
- 27. Apache目錄列表
- 28. Sharpssh目錄列表
- 29. SFTP列表目錄
- 30. 如何排序文件和目錄的列表,以便首先列出目錄
@stereofrog:好點,謝謝(編輯答案) – ChristopheD
好的解決方案,但它不會擴展。 –