简体   繁体   English

从PHP中的目录和子目录中列出数组中的MP3文件

[英]List MP3 Files In An Array From Directories & Sub-directories In PHP

I Want To Get List Of Files In My Directories & Sub-Directories In An Array In PHP Language . 我想以PHP语言以数组形式获取目录和子目录中的文件列表。

I Have 2 Type Of Code : 我有2种代码类型:

1- First Code: 1-第一个代码:
This Bellow Code List All Files In An Array , But There Are Folders And Sub-directories In Array : 该波纹管代码列出了阵列中的所有文件,但是阵列中有文件夹和子目录:

$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>";

Result Of Top Code : Click For View Image 热门代码的结果: 单击查看图像

2- Second Code: 2秒代码:
This Bellow Code List All MP3 Files But In String Not Array! 此波纹管代码列出所有MP3文件,但不是字符串! & I Can't Convert It To Array. 我无法将其转换为数组。

$scan_it = new RecursiveDirectoryIterator("pathAddress");
foreach(new RecursiveIteratorIterator($scan_it) as $file) {
if (strtolower(substr($file, -4)) == ".mp3") {
echo "<pre>";
echo($file);
echo "</pre>";
}
}

Result Of Top Code : Click For View Image 热门代码的结果: 单击查看图像

Finally, I Want An Array Of MP3 Files In All Directories & Sub-Directories Specified Location . 最后,我想要所有目录和子目录中指定位置的MP3文件数组。

Thanks For Your Help 谢谢你的帮助

This code might help you, It will check all the folders and in return, will get file names .. 此代码可能会对您有所帮助,它将检查所有文件夹,并作为回报,将获得文件名..

<?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);


?>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM