回答
您可以使用glob
$images = glob('/tmp/*.{jpeg,gif,png}', GLOB_BRACE);
如果您需要這是不區分大小寫的,你可以結合使用DirectoryIterator
與scandir
結果的RegexIterator
或傳遞給array_map
並使用一個回調過濾任何不需要的擴展名。無論您使用strpos
,fnmatch
還是pathinfo
來獲得擴展取決於您。
你可以得到的陣列之後搜索和丟棄的文件不符合您的條件。
scandir
沒有您尋求的功能。
我會遍歷文件,看看他們的擴展:
$dir = '/tmp';
$dh = opendir($dir);
while (false !== ($fileName = readdir($dh))) {
$ext = substr($fileName, strrpos($fileName, '.') + 1);
if(in_array($ext, array("jpg","jpeg","png","gif")))
$files1[] = $fileName;
}
這裏有一個簡單的方法來獲得唯一的圖像。適用於PHP> = 5.2版本。擴展的集合是小寫的,因此將循環中的文件擴展名設置爲小寫使其不區分大小寫。
// image extensions
$extensions = array('jpg', 'jpeg', 'png', 'gif', 'bmp');
// init result
$result = array();
// directory to scan
$directory = new DirectoryIterator('/dir/to/scan/');
// iterate
foreach ($directory as $fileinfo) {
// must be a file
if ($fileinfo->isFile()) {
// file extension
$extension = strtolower(pathinfo($fileinfo->getFilename(), PATHINFO_EXTENSION));
// check if extension match
if (in_array($extension, $extensions)) {
// add to result
$result[] = $fileinfo->getFilename();
}
}
}
// print result
print_r($result);
我希望這是有用的,如果你想不區分大小寫和圖像只有擴展名。
完美的作品! – 2016-03-04 23:15:55
實際的問題是使用scandir並且答案以glob結尾。兩者在相當重的地方存在巨大差異。使用下面的代碼可以使用scandir完成相同的過濾:
$images = preg_grep('~\.(jpeg|jpg|png)$~', scandir($dir_f));
我希望這可以幫助某人。
如果你想掃描目錄,返回文件名,只有你可以使用這個:
$fileNames = array_map(
function($filePath) {
return basename($filePath);
},
glob('./includes/*.{php}', GLOB_BRACE)
);
scandir()
將返回.
和..
以及文件,因此上面的代碼是清潔的,如果你只需要或者你想用實際的文件路徑做其他的事情
謝謝。 – 2018-01-24 08:15:58
- 1. 如何獲取圖像,並使用PHP
- 2. 如何從php中獲取圖像?
- 3. 如何在c中正確使用scandir()?
- 4. 如何使用php(Codeigniter)從文件夾中獲取圖像
- 5. 使用scandir獲取文件夾內容的php
- 6. 如何獲取圖像使用Jasny圖像上傳和發佈在PHP
- 7. 如何在PHP中使用scandir過濾文件名列表?
- 8. 如何在PHP中獲取圖像的像素值?
- 9. PHP scandir如何工作?
- 10. 使用PHP curl獲取/保存圖像
- 11. 使用php獲取URL圖像內容
- 12. 使用AJAX從PHP獲取PNG圖像
- 13. 使用PHP從HTTP POST獲取圖像
- 14. 使用PHP獲取主文章圖像
- 15. 獲取圖像以使用php呈現
- 16. 使用php獲取圖像全尺寸
- 17. 使用PHP獲取圖像的顏色
- 18. 如何每週獲取新圖像 - PHP
- 19. Android:如何使用MediaMetadataRetriever獲取圖像?
- 20. 我如何使用preg_match_all獲取圖像
- 21. 如何使用IHTMLSelectionObject獲取圖像?
- 22. 如何使用simplexml獲取圖像src
- 23. 如何使用Instagram API獲取圖像
- 24. 如何使用jQuery獲取圖像ID?
- 25. 如何使用捲曲獲取圖像?
- 26. 如何使用FreeImage獲取子圖像
- 27. 從php中的文章中獲取圖像使用php
- 28. scandir用php遞歸
- 29. 在PHP中獲取圖像的URL url
- 30. 在php中獲取圖像src
......不再使用'scandir()'。但是否則是正確的。所以不應該是「不,用'glob'」? – Borealid 2010-07-12 07:22:33
@Borealid nitpicker:D – Gordon 2010-07-12 07:24:12
現在讓它不區分大小寫。 > :) – salathe 2010-07-12 08:15:00