Re: List files in a directory using filters and exclusions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, 6 Jun 2009 21:39:15 -0400 (CDT), rsantamaria@xxxxxxxxxx ("Rolando Santamaria
Maso") wrote:

>Hi PHP community, here I bring a very simple and interesting function that
>I made for a project, it's objetive is "to list path files in a directory
>with the possibility of using filters and exclusions".
>
>What do you think about?
>-----------------------
>
>    function get_files($path, &$result,  Array $exclusions, Array $filters)
>    {
>        @$dir_content = scandir($path);
>	if ($dir_content)
>        {
>            $end    = count($dir_content);
>            $i      = 2;
>
>            for ($i; $i < $end; $i++)
>            {
>                $path_and_element = $path.'/'.$dir_content[$i];
>                if (array_search($path_and_element, $exclusions) === false)
>                {
>                    if (array_search(substr($dir_content[$i],
>strlen($dir_content[$i]) - 4), $filters) !== false)
>                    {
>                        $result[] = $path_and_element;
>                    }
>
>        	    if (is_dir($path_and_element))
>                    {
>                        get_files($path_and_element, $result, $exclusions,
>$filters);
>                    }
>                }
>	    }
>	}
>    }
>
>
>    $path       = '/var/www';
>    $result     = array();
>    $exclusions = array('/var/www/drupal', '/var/www/wp');
>    $filters    = array('.php');
>
>    get_files($path, $result, $exclusions, $filters);
>
>    echo "<pre>";
>    print_r($result);
>    die();

I have just written a recursive backup program, and used a slightly different exclusion
procedure:

	$exclusions = array ('...drupal' => true, 'Images' =>'true', .... );

	if (!isset($exclusions[$file])) {  [copy file to backup ]  }

This looks simpler, and therefore quicker, but I suspect it is just putting the complexity
out of sight!




>
>------------------------------------------------------------
>Greetings!!!!
>

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux