13
A
回答
35
是的,你必須通讀全部。但由於目錄訪問被緩存,所以你不應該爲此擔心。
$files = array_merge(glob("img/*.png"), glob("img/*.jpg"));
$files = array_combine($files, array_map("filemtime", $files));
arsort($files);
$latest_file = key($files);
4
我不記得有沒有看到一個功能,可以做你要求的。
所以,我認爲你將不得不通過所有(至少jpg/png/gif)文件,並搜索每個文件的最後修改日期。
這裏有一個可能的解決方案的基礎上,DirectoryIterator
類SPL的:
$path = null;
$timestamp = null;
$dirname = dirname(__FILE__);
$dir = new DirectoryIterator($dirname);
foreach ($dir as $fileinfo) {
if (!$fileinfo->isDot()) {
if ($fileinfo->getMTime() > $timestamp) {
// current file has been modified more recently
// than any other file we've checked until now
$path = $fileinfo->getFilename();
$timestamp = $fileinfo->getMTime();
}
}
}
var_dump($path);
當然,你也可以做同樣的事情與readdir()
等相應的功能。
0
function listdirfile_by_date($path)
{
$dir = opendir($path);
$list = array();
while($file = readdir($dir))
{
if($file != '..' && $file != '.')
{
$mtime = filemtime($path . $file) . ',' . $file;
$list[$mtime] = $file;
}
}
closedir($dir);
krsort($list);
foreach($list as $key => $value)
{
return $list[$key];
}
return '';
}
相關問題
- 1. 獲取上一次修改的目錄中的文件?
- 2. FTP獲取最後一次修改文件的日期
- 3. 最後修改的目錄
- 4. C#:從目錄中獲取5個最新(最後修改)的文件
- 5. 用Ant修改文件獲取目錄
- 6. 如何獲取最新(最後修改)的目錄[C#]
- 7. 如何獲取多個目錄中文件的最後修改日期?
- 8. 如何獲取Windows上Perl目錄的最後修改時間?
- 9. 獲取目錄的最後修改時間
- 10. 獲取寫入文件的目錄中最後一個修改過的文件的屬性
- 11. 如何從文件列表中獲取最後一個修改後的文件
- 12. 從目錄中選擇最後修改的文件
- 13. Hadoop目錄/文件的最後修改時間
- 14. 使用vi打開目錄中的最後修改文件
- 15. 閱讀Perl的最後一次修改的文件
- 16. 獲取上次修改文件的最佳方式屬性
- 17. 使用PHP獲取目錄中文件的上次修改日期使用PHP
- 18. 目錄最後修改日期
- 19. 獲取最後一個文件上傳了多個目錄
- 20. 獲取Inno Setup文件的最後修改日期Pascal腳本
- 21. 在VB6中獲取文件的最後修改日期
- 22. 獲取文件的最後修改日期
- 23. 獲取文件的最後修改日期用C
- 24. 獲取文件元數據(最後修改日期)的開銷
- 25. 如何在asp.net中獲取文件的最後修改時間?
- 26. 獲取git repo中文件的最後修改數據
- 27. 獲取文件的最後修改日期與Windows
- 28. 獲取文件的最後修改時間在Linux
- 29. 在sitecore中獲取文件的最後修改日期
- 30. 在AppleScript中獲取文件的最後修改日期
不是,它只是一個帶有內建文件名過濾器的scandir()(我寫了一次PHP4重新實現),真正的問題在於使用兩個globs,使用'glob(「img/*。{png ,jpg,gif}「,GLOB_BRACE)'在你的情況下。 – mario 2011-03-27 10:12:16
true,scandir返回所有*條目,但glob將其濾掉 已經。 readdir方法的不同之處在於,您可以通過更多的php/system調用以停下來的方式進行操作。 – mario 2011-03-27 10:59:26
glob在編譯的C代碼中循環,而readdir在循環中需要較慢的PHP。 – mario 2011-03-27 11:18:48