Как да извлечем пътя до всички файлове от дадена директория

Много пъти ми се е налагало по една или друга причина да извличам файловото съдържание на дадена директория, включително и файловете в поддиректориите.
За тази цел използвам следната фукция:


function get_module_info($dir)
{
    global $x_module_array;

    if(!is_array($x_module_array)) $x_module_array = array();
    $d = @dir($dir);
    if($d)
    {
        while (false !== ($entry = $d->read()))
        {
            if($entry!='.' && $entry!='..')
            {
                $entry_org = $entry;
                $entry = $dir.DIRECTORY_SEPARATOR.$entry;
                if(is_dir($entry))
                {
                    get_module_info($entry);
                }
                if(is_file($entry))
                {
                    $x_module_array[] = $entry;
                }
            }
        }
        $d->close();
    }
    return $x_module_array;
}


Единственото което трябва да направите е да определите директорията от която искате да извлечете файловете (заместете C:\\apache\\htdocs\\demo с пътя до Вашата директория):

$array = get_module_info('C:\\apache\\htdocs\\demo');


И тази фукция ще Ви върне масив с всички файлове от директорията и поддиректориите. Резултата ще е нещо такова:

$array =
(
    'C:\apache\htdocs\demo\.htaccess',
    'C:\apache\htdocs\demo\classes\controller_base.php',
    'C:\apache\htdocs\demo\classes\registry.php',
    'C:\apache\htdocs\demo\classes\router.php',
    'C:\apache\htdocs\demo\classes\template.php',
    'C:\apache\htdocs\demo\controllers\.htaccess',
    'C:\apache\htdocs\demo\controllers\index.php',
    'C:\apache\htdocs\demo\controllers\members.php',
    'C:\apache\htdocs\demo\includes\startup.php',
    'C:\apache\htdocs\demo\index.php',
    'C:\apache\htdocs\demo\templates\.htaccess',
    'C:\apache\htdocs\demo\templates\index.php'
);



Търсене в статиите

Loading

Блог категории

  1. SEO ( 3 )

  2. Фирмена идентичност ( 1 )

  3. Достъпност ( 1 )

  4. Програмиране ( 3 )