<?php

function scan_dir ($dir) 
{
    $dir = rtrim($dir, '/').'/';

    if (!$handle = opendir($dir)) return false;

    $_result['link']['name'] = array();
    $_result['dir']['name']  = array();
    $_result['file']['name'] = array();
    $_result['file']['size'] = array();

    $_index  = array();        
    $_index['file'] = 0;

    while (false !== ($res = readdir($handle))) 
    {
        if (is_dir($dir.$res) && is_link($dir.$res))          
        {
            $_result['link']['name'][] = $dir.$res; 
        }
        elseif (is_dir($dir.$res) && $res != '..') 
        {
            $_result['dir']['name'][] = $dir.$res;
        }
        elseif (is_file($dir.$res)) 
        {
            $_index['file']++; 
            $_result['file']['name'][$_index['file']] = $dir.$res;
            $_result['file']['size'][$_index['file']] = filesize($_result['file']['name'][$_index['file']]);
        }
    }

    closedir($handle);
    
    $_keys = array_keys($_result['dir']['name'],$dir.'.');
    if (isset($_keys[0])) 
    {
        $_result['dir']['size'][$_keys[0]] = array_sum($_result['file']['size']);      
    }    

    natsort($_result['link']['name']);
    natsort($_result['dir']['name']);
    natsort($_result['file']['name']);
    
    return array($_result);
}

#===================================================================================
# PHP main
#===================================================================================


$_dirlist = scan_dir ('../../');


echo "<pre>\r\n";
echo htmlspecialchars(print_r($_dirlist,1));
echo "</pre>\r\n";


?>