Scripts

Dir uitlezer

Ik heb een update gemaakt van het script van d@rk, zodat je dus ook verder kan bladeren , mappen 'gewoon' kan laten zien en wat extra files images. Veel plezier.

dir-uitlezer
<?php
#####################################
# first version script made by d@rk #
# script update by MOnk			    #
# Release 26-3-2006                 #
#####################################

ERROR_REPORTING(0);
if(isset($_GET['dir']) !='')
{ $dir= $_GET['dir'];}
else{ $dir='';}//Leeg laten voor de deze directory te scannen
$n_ext=array('');// extensies voorbeeld: array('html','php') voor directories schrijf je als extensie dir
$n_file=array('.htaccess', '.htpasswd','index.php');// bestanden of mappen die niet mogen getoont worden
$showmap = FALSE; //De mogelijkheid om mappen 'gewoon' te laten zien (TRUE = ja || FALSE = nee )

//------------------------------------
//iconnen die gebruikt worden
//------------------------------------
//Compressed
$icons['zip']='compressed';
$icons['rar']='compressed';
$icons['z']='compressed';
$icons['tgz']='compressed';
$icons['gz']='compressed';
$icons['tar']='compressed';

//Binary

$icons['bin']='binary';
$icons['exe']='binary';
$icons['hqx']='binhex';

//andere bestanden (volgens apache bestaad dat ook :D)

$icons['wrl']='world2';
$icons['vrml']='world2';
$icons['vrm']='world2';
$icons['iv']='world2';
$icons['ps']='a';
$icons['ai']='a';
$icons['eps']='a';
$icons['c']='c';
$icons['pl']='p';
$icons['py']='p';
$icons['f']='for';
$icons['dvi']='dvi';
$icons['uu']='uuencoded';
$icons['core']='bomb';


//Sites

$icons['html']='layout';
$icons['shtml']='layout';
$icons['htm']='layout';
$icons['pdf']='layout';

//Text

$icons['txt']='text';
$icons['htaccess']='text';
$icons['htpasswd']='text';

//Scripts
$icons['php']='script';
$icons['conf']='script';
$icons['sh']='script';
$icons['shar']='script';
$icons['csh']='script';
$icons['ksh']='script';
$icons['tcl']='script';

//Directories en vorige directory

$icons['..']='back';
$icons['']='folder';

//Zelf toegevoegde icononen die ook in apache zitten maar niet gebruikt worden

//foto's

$icons['gif']='image2';
$icons['jpg']='image2';
$icons['png']='image2';
$icons['bmp']='image2';
$icons['pntg']='image2';
$icons['pnt']='image2';
$icons['mac']='image2';
$icons['pict']='image2';
$icons['pic']='image2';
$icons['pct']='image2';
$icons['qtif']='image2';
$icons['qti']='image2';
$icons['sgi']='image2';
$icons['rgb']='image2';
$icons['targa']='image2';
$icons['tga']='image2';
$icons['tif']='image2';
$icons['tiff']='image2';
$icons['psd']='image2';

//Films

$icons['mpg']='movie';
$icons['mpeg']='movie';
$icons['mov']='movie';
$icons['qt']='movie';
$icons['wmv']='movie';
$icons['avi']='movie';
$icons['flc']='movie';
$icons['fli']='movie';
$icons['m1s']='movie';
$icons['m1v']='movie';
$icons['m1a']='movie';
$icons['m75']='movie';
$icons['m15']='movie';
$icons['mp2']='movie';
$icons['mpm']='movie';
$icons['mpv']='movie';
$icons['mpa']='movie';
$icons['3gp']='movie';
$icons['3gpp']='movie';
$icons['3g2']='movie';
$icons['3gp2']='movie';
$icons['mp4']='movie';
$icons['mpg4']='movie';
$icons['sdv']='movie';
$icons['amc']='movie';
$icons['m4v']='movie';
$icons['swf']='movie';
$icons['dv']='movie';
$icons['dif']='movie';


//Geluids bestanden

$icons['wav']='sound1';
$icons['bwf']='sound1';
$icons['midi']='sound1';

//Muziek

$icons['mp3']='sound2';
$icons['wma']='sound2';
$icons['au']='sound2';
$icons['aiff']='sound2';
$icons['au']='sound2';
$icons['snd']='sound2';
$icons['ulw']='sound2';
$icons['qcp']='sound2';
$icons['sd2']='sound2';
$icons['amr']='sound2';
$icons['gsm']='sound2';
$icons['aiff']='sound2';
$icons['m4a']='sound2';
$icons['m4p']='sound2';
$icons['m4b']='sound2';
$icons['swa']='sound2';
$icons['m4b']='sound2';

//new 
//image
$icons['ico']='image3';
$icons['pub']='image3';
$icons['ppt']='image3';
$icons['pps']='image3';
//layout
$icons['css']='layout';
//text
$icons['doc']='text';
$icons['log']='text';
//compressed
$icons['torrent']='compressed';
//open folder
$icons['lnk']='folder.open';
//script
$icons['js']='script';
$icons['sql']='script';
//links types 
function linkdir($ext) {
$ext = str_replace("/","",$ext);

return $ext;
}
//------------------------------------
//Functie voor te kijken of het bestand toegelaten is
//------------------------------------
function check_allow($file){
    global $n_ext, $n_file, $icons;
    
    for($a=0;$a<count($n_ext);$a++){
        $ext=explode('.',$file);
        $ext_check=count($ext);
        $ext=$ext[count($ext)-1];
        if(is_file($file)){
            $img=$icons[strtolower($ext)];
        }
        else{
            $img='';
        }
        if($img==''){
            $ext='dir';
        }
#Je kan ook alleen een bepaalt type file laten zien
#hiervoor gebruik je : if($ext!=$n_ext[$a]){
#Anders pak je gewoon: if($ext==$n_ext[$a]){
		if($ext==$n_ext[$a]){
            $allow=1;
        }
    }
    
    for($a=0;$a<count($n_file);$a++){
        if($file==$n_file[$a]){
            $allow=1;
        }
    }
    if(isset($allow)){
        return FALSE;
    }
    else{
        return TRUE;
    }
}
//------------------------------------
//Begin van de pagina
//------------------------------------
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
 <head>
  <title>Index of '.$dir.'/</title>
 </head>
 <body>';
echo '<h1>Index of '.$dir.'/</h1>'."\n".'';
if($showmap == TRUE){
echo "<a target='_blank' href='$dir'>Show map.</a>";
}
echo"<pre>";
//------------------------------------
//Sorteer volgorder en dan opslaan in $sort
//------------------------------------
if(isset($_GET['C'])){
    $type=explode(';O=',$_GET['C']);
    $sort_by=$type[0];
    $sort_way=$type[1];
    if(($sort_by=='N' || $sort_by=='M' || $sort_by=='S' || $sort_by=='D') && ($sort_way=='A' || $sort_way=='D')){
        if($sort_by=='N'){
            if($sort_way=='A'){
                $n='D';
                $m='A';
                $s='A';
                $d='A';
            }
            else{
                $n='A';
                $m='A';
                $s='A';
                $d='A';    
            }
            $sort=1;
        }
        elseif($sort_by=='M'){
            if($sort_way=='A'){
                $n='A';
                $m='D';
                $s='A';
                $d='A';
            }
            else{
                $n='A';
                $m='A';
                $s='A';
                $d='A';    
            }
            $sort=2;
        }
        elseif($sort_by=='S'){
            if($sort_way=='A'){
                $n='A';
                $m='A';
                $s='D';
                $d='A';
            }
            else{
                $n='A';
                $m='A';
                $s='A';
                $d='A';    
            }
            $sort=3;
        }
        elseif($sort_by=='D'){
            if($sort_way=='A'){
                $n='A';
                $m='A';
                $s='A';
                $d='D';
            }
            else{
                $n='A';
                $m='A';
                $s='A';
                $d='A';    
            }
        }
    }
    else{
        $n='D';
        $m='A';
        $s='A';
        $d='A';
    }
}
else{
    $n='D';
    $m='A';
    $s='A';
    $d='A';
}
echo '<img src="/icons/blank.gif" alt="Icon "> <a href="?C=N;O='.$n.'&dir='. $_GET['dir'] .'">Name</a>                    ';
echo '<a href="?C=M;O='.$m.'&dir='. $_GET['dir'] .'">Last modified</a>      ';
echo '<a href="?C=S;O='.$s.'&dir='. $_GET['dir'] .'">Size</a>  ';
echo '<a href="?C=D;O='.$d.'&dir='. $_GET['dir'] .'">Description</a><hr>';
if(isset($_GET['dir']) !='')
{
 
  $lastmap = dirname ($dir);
echo "<img src='/icons/back.gif' alt='Icon '> <a href='?dir=".$lastmap."'>Parent Directory</a>";
 
 $spaces=9-strlen($lastmap);
    for($c=0;$c<$spaces;$c++){
        echo ' ';
    }
echo date('d\-M\-Y H\:i',filemtime($lastmap)) ."                    <br>";

}
else{
$lastmap = dirname ($dir);
echo "<img src='/icons/back.gif' alt='Icon '> <a href='?dir=.'>Parent Directory</a>". date('d\-M\-Y H\:i',filemtime($lastmap)) ."                    <br>";}

//------------------------------------
//Directory openen en alles in een array zetten zodat we het nog kunnen sorteren later
//En controle of het bestand is toegelaten
//------------------------------------
if($dir==''){
    $open_dir='.';
}
else{
    $open_dir=$dir;
}
$handle=opendir($open_dir); 
$a=0;
$test_iri=str_replace(basename($_SERVER['PHP_SELF']),'',$_SERVER['REQUEST_URI']);
$test_iri=explode('?',$test_iri);
$test_iri=$test_iri[0];
while (false!==($file = readdir($handle))) { 
    if($file!='.'){
        if($file!='..'){
            $ext=explode('.',$file);
            $ext_check=count($ext);
            $ext=$ext[count($ext)-1];
            if(is_file($file)){
                $img=$icons[strtolower($ext)];
            }
            else{
                $img='';
            }
            if($img=='' && $ext!='' && $ext_check>=2){
                $img='unknown';
            }
            elseif($img==''){
                $img=$icons[''];
                $file=$file.'/';
                $ext='';
            }
        }
        else{
            $img=$icons['..'];
            $ext='dir';
        }
        if($test_iri=='/'){
            $test=($file!='..');
        }
        else{
            $test=TRUE;
        }
        if($test && check_allow($file)){
            $files_file[$a]=$file;
            $files_ext[$a]=$ext;
            $files_time[$a]=filemtime($file);
            if($files_ext[$a]==''){
                $size='  -';
            }
            else{
                $size=round(filesize($files_file[$a])/1024,1).'K';
            }
            
			$files_size[$a]=$size;
            $a++;
        }
    }
}

closedir($handle); 
//------------------------------------
//Als de lijst moet gesorteert worden
//------------------------------------
if(isset($sort) == 1 ){
    if($sort_way=='A'){
        array_multisort($files_file, SORT_ASC, $files_ext, SORT_ASC, $files_time, SORT_ASC, $files_size, SORT_ASC);
    }
    else{
        array_multisort($files_file, SORT_DESC, $files_ext, SORT_DESC, $files_time, SORT_DESC, $files_size, SORT_DESC);
    }
}
elseif(isset($sort) ==2){
    if($sort_way=='A'){
        array_multisort($files_time, SORT_ASC, $files_ext, SORT_ASC, $files_file, SORT_ASC, $files_size, SORT_ASC);
    }
    else{
        array_multisort($files_time, SORT_DESC, $files_ext, SORT_DESC, $files_file, SORT_DESC, $files_size, SORT_DESC);
    }
}
elseif(isset($sort) ==3){
    if($sort_way=='A'){
        array_multisort($files_size, SORT_ASC, $files_ext, SORT_ASC, $files_file, SORT_ASC, $files_time, SORT_ASC);
    }
    else{
        array_multisort($files_size, SORT_DESC, $files_ext, SORT_DESC, $files_file, SORT_DESC, $files_time, SORT_DESC);
    }
}
//------------------------------------
//Alles echo'en
//------------------------------------
for($b=0;$b<$a;$b++){
    if($files_ext[$b]==''){
        $alt='[DIR]';
    }
    else{
        $alt='['.strtoupper($files_ext[$b]).']';
    }
    echo '<img src="/icons/'.$icons[$files_ext[$b]].'.gif" width="20" height="22" alt="'.$alt.'"> ';
    echo "<a "; if($files_ext[$b] ==''){ echo"href='"; if(isset($_GET['dir']) !=''){$dirname = linkdir($files_file[$b]); echo "?dir=".$_GET['dir']."/". $dirname ."";}else{ $dirname = linkdir($files_file[$b]); echo "?dir=". $dirname .""; }}else{  echo"target='_blank' href='"; if(isset($_GET['dir']) !=''){echo $_GET['dir']."/". $files_file[$b];}else{echo $files_file[$b];}} echo "' >".$files_file[$b]."</a>";
    $spaces=24-strlen($files_file[$b]);
    for($c=0;$c<$spaces;$c++){
        echo ' ';
    }
    echo date('d\-M\-Y H\:i',$files_time[$b]);
    echo '  '.$files_size[$b]."\n";
}
//------------------------------------
//Einde van de pagina
//------------------------------------
echo '<hr></pre>'.$_SERVER['SERVER_SIGNATURE'] ;
?> 

Reacties

0
Nog geen reacties.