GetFile.php Examples reading an image folder (source below)..

Full directory listing:
Array
(
    [0] => .
    [1] => ..
    [2] => logo.png
    [3] => powered-mysql.gif
    [4] => powered-php.gif
    [5] => valid-css.gif
    [6] => valid-xhtml10.gif
)
Filtered directory listing hiding .htaccess, ., and ..:
Array
(
    [0] => logo.png
    [1] => powered-mysql.gif
    [2] => powered-php.gif
    [3] => valid-css.gif
    [4] => valid-xhtml10.gif
)
Filtered file listing(*.jpg,*.gif,*.png,*.ico):
Array
(
    [0] => logo.png
    [1] => powered-mysql.gif
    [2] => powered-php.gif
    [3] => valid-css.gif
    [4] => valid-xhtml10.gif
)
Random Image(1) uses array_rand() on the above file array:

GetFiles.php(source)

<?php
/*
+        Returns an array of files from a supplied directory, returns null on failure
+
+        Params: 
+        $path (optional)
+
+        Examples: 
+        GetFileArray();
+        GetFileArray('downloads/');
*/
function GetFileArray($path './')

    
$path rtrim($path"/") . "/";
    if(
is_dir($path))
    {
        
$results = array();
        
$handle opendir($path);
        while(
false !== ($filename readdir($handle)))
        {
            
$results[] = $filename;
        }
        
closedir($handle);
        unset(
$handle,$filename);
        return 
$results;
    }
    return 
null;
}


/*
+        Returns is a filtered version of the supplied $files array
+
+        Params: 
+        $array (required) - An array of files 
+
+        Examples:
+        FilterFileArray('1.txt|2.txt','.txt', 0);
+        FilterFileArray('1.txt|2.txt','.|..', 0);
+        Array
+        (
+            [0] => 1.txt
+            [1] => 2.txt
+        )
+        FilterFileArray(array('.','..',1.txt','2.txt'),array('.','..'), 0);
+        Array
+        (
+            [0] => 1.txt
+            [1] => 2.txt
+        )
+        FilterFileArray(array('.','..','1.png','2.gif'),array('gif',png'), 0);
+        Array
+        (
+            [0] => 1.png
+            [1] => 2.gif
+        )
*/
function FilterFileArray($array null,$filters null$type 0)
{
    
// if no array was supplied return null for error checking
    
if($array == null)
        return 
null;
        
    
$results = array();
    
    
// handle the included filters
    // if not already an array turn them into an array for later use
    
if($filters != null && !is_array($filters))
            
$filters explode('|'$filters);
            
    foreach(
$array as $filename)
    {
        
// filter out unwanted files or folders
        
if($type == 0)
        {
            if(!
in_array($filename$filters))
                
$results [] = $filename;
        }
        
// Filtered by file extention, only returns matching file types
        
elseif($type == 1)
        {
            
$file_info pathinfo($filename);
            if(
in_array($file_info['extension'],$filters))
                
$results [] = $filename;
        }
    }    
    return 
$results;
}

/*
+    Fairly straight foward sort a supplied array!
+    Can add other methods this is a basic example currently
*/
function SortArray($array null,$method 0)
{
    
// if no array was supplied return null for error checking
    
if(!is_array($array))
            return 
null;
                                
    switch(
$method)
    {
        case 
0:
            
sort($array);
            break;
        case 
1:
            
natsort($array);
            break;
    }
    return 
$array;
}

?>