Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从目录中以数组形式列出MP3文件&;PHP中的子目录_Php_Arrays - Fatal编程技术网

从目录中以数组形式列出MP3文件&;PHP中的子目录

从目录中以数组形式列出MP3文件&;PHP中的子目录,php,arrays,Php,Arrays,我想用PHP语言获取我的目录和子目录中的文件列表 我有两种类型的代码: 1-第一个代码: 下面的代码列出了数组中的所有文件,但数组中有文件夹和子目录: $files = dir_scan('pathAddress'); function dir_scan($folder) { $files = glob($folder); foreach ($files as $f) { if (is_dir($f)) { $files = array_merge($files,

我想用PHP语言获取我的目录和子目录中的文件列表

我有两种类型的代码:

1-第一个代码:
下面的代码列出了数组中的所有文件,但数组中有文件夹和子目录:

$files = dir_scan('pathAddress'); 
function dir_scan($folder) {
$files = glob($folder);
foreach ($files as $f) {
    if (is_dir($f)) {
        $files = array_merge($files, dir_scan($f .'/*')); // scan subfolder
    }
}
return $files;
}
echo "<pre>";
print_r($files);
echo "</pre>";
$files=dir_scan('pathAddress');
功能目录扫描($folder){
$files=glob($folder);
foreach($f文件){
如果(是_dir($f)){
$files=array\u merge($files,dir\u scan($f.'/*');//扫描子文件夹
}
}
返回$files;
}
回声“;
打印(文件);
回声“;
顶级代码的结果:

2秒代码:
下面的代码列出了所有MP3文件,但不是以字符串形式列出我无法将其转换为数组。

<?php 

function listFolderFiles($dir)
{    
    $file_names = array();
    foreach (new DirectoryIterator($dir) as $fileInfo) {
        if (!$fileInfo->isDot()) {



            if ($fileInfo->isDir()) {


                // checking directory empty or not, if not then append list     
                $isDirEmpty = !(new \FilesystemIterator($fileInfo->getPathname()))->valid();

                if($isDirEmpty != 1)
                {

                    $file_names[] = listFolderFiles($fileInfo->getPathname());
                }



            }
            else 
            {
                $file_names[] = $fileInfo->getPathname() ;  
            }
        }
    }


    // Splicing Array 
        for ($i=0; $i<count($file_names); $i++) {

            if (is_array($file_names[$i])) {
                    array_splice($file_names, $i, 1, $file_names[$i]);
            }
        }


    return $file_names;
}


$res = listFolderFiles('main_folder_name');
echo '<pre>';
print_r($res);


?>
$scan\u it=新的递归目录迭代器(“路径地址”);
foreach(新的递归迭代器($scan_it)作为$file){
if(strtolower(substr($file,-4))==“.mp3”){
回声“;
echo($文件);
回声“;
}
}
顶级代码的结果:

最后,我希望在指定位置的所有目录和子目录中都有一个MP3文件数组。


感谢您的帮助

此代码可能会对您有所帮助,它将检查所有文件夹,作为回报,将获得文件名


谢谢你,你的代码很管用@
<?php 

function listFolderFiles($dir)
{    
    $file_names = array();
    foreach (new DirectoryIterator($dir) as $fileInfo) {
        if (!$fileInfo->isDot()) {



            if ($fileInfo->isDir()) {


                // checking directory empty or not, if not then append list     
                $isDirEmpty = !(new \FilesystemIterator($fileInfo->getPathname()))->valid();

                if($isDirEmpty != 1)
                {

                    $file_names[] = listFolderFiles($fileInfo->getPathname());
                }



            }
            else 
            {
                $file_names[] = $fileInfo->getPathname() ;  
            }
        }
    }


    // Splicing Array 
        for ($i=0; $i<count($file_names); $i++) {

            if (is_array($file_names[$i])) {
                    array_splice($file_names, $i, 1, $file_names[$i]);
            }
        }


    return $file_names;
}


$res = listFolderFiles('main_folder_name');
echo '<pre>';
print_r($res);


?>