首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有文件扩展名的RecursiveIterator返回数组

具有文件扩展名的RecursiveIterator返回数组
EN

Stack Overflow用户
提问于 2014-10-07 13:54:30
回答 1查看 158关注 0票数 0

我使用这个函数查找文件夹和子文件夹中的所有图片:

代码语言:javascript
复制
function rsearch($folder, $pattern) {
    $dir = new RecursiveDirectoryIterator($folder);
    $ite = new RecursiveIteratorIterator($dir);
    $files = new RegexIterator($ite, $pattern, RegexIterator::GET_MATCH);
    $fileList = array();
    foreach($files as $file) {
        $fileList = array_merge($fileList, $file);
    }
    return $fileList;
}
$list_of_file=rsearch($data_directory,'/^.+\.(jpg|jpeg|png|gif|tiff)$/i');
echo 'longueur '.count($list_of_file);
print_r($list_of_file);

这里的结果是:

代码语言:javascript
复制
    Array
(
    [0] => file-user/rep/username/images\asura.jpg
    [1] => jpg
    [2] => file-user/rep/username/images\beyourself.jpg
    [3] => jpg
    [4] => file-user/rep/username/images\subfolder\logo3.png
    [5] => png
    [6] => file-user/rep/username/images\gmail.gif
    [7] => gif
)

1)如何将文件名前的\更改为/

2)为什么数组在文件本身之后返回扩展名?如何预防?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-07 14:09:12

尝试var_dump $files,您就会看到。如果不想将$file数组的两个元素都放入$fileList中,那么就不要使用array_merge了:

代码语言:javascript
复制
   foreach($files as $file) {
       $fileList[] = $file[0];
   }

对于对\做一个str_replace或类似的非常粗糙和现成的修复。类似于:

代码语言:javascript
复制
   foreach($files as $file) {
       $fileList[] = str_replace('/','\\',$file[0]);
   }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26237717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档