Scripts

Simpele Apache kloon (Directory viewer)

Ik weet niet of hij het overal doet, ik heb hem getest op mij localhost, WAMP Happy directory's onderzoeken :D Bugs gevonden? Meld het dan even ;;)

simpele-apache-kloon-directory-viewer
<style type="text/css">
a:link
{
	color: #000000;
	text-decoration: none;
}
a:visited, a:hover
{
	color: #000000;
	text-decoration: underline;
}
body
{
	font-family: tahoma, sans-serif;
}
</style>
<?php
///////////////////////
//Apache kloon       //
//Door PurpleMadness //
//©                  //
///////////////////////
//De MIME functie

function mime_extension($ext){
$mimetypes = array(
    'ez'        => 'application/andrew-inset',
    'hqx'        => 'application/mac-binhex40',
    'cpt'        => 'application/mac-compactpro',
    'doc'        => 'application/msword',
    'bin'        => 'application/octet-stream',
    'dms'        => 'application/octet-stream',
    'lha'        => 'application/octet-stream',
    'lzh'        => 'application/octet-stream',
    'exe'        => 'application/octet-stream',
    'class'        => 'application/octet-stream',
    'so'        => 'application/octet-stream',
    'dll'        => 'application/octet-stream',
    'oda'        => 'application/oda',
    'pdf'        => 'application/pdf',
    'ai'        => 'application/postscript',
    'eps'        => 'application/postscript',
    'ps'        => 'application/postscript',
    'smi'        => 'application/smil',
    'smil'        => 'application/smil',
    'mif'        => 'application/vnd.mif',
    'xls'        => 'application/vnd.ms-excel',
    'ppt'        => 'application/vnd.ms-powerpoint',
    'wbxml'        => 'application/vnd.wap.wbxml',
    'wmlc'        => 'application/vnd.wap.wmlc',
    'wmlsc'        => 'application/vnd.wap.wmlscriptc',
    'bcpio'        => 'application/x-bcpio',
    'vcd'        => 'application/x-cdlink',
    'pgn'        => 'application/x-chess-pgn',
    'cpio'        => 'application/x-cpio',
    'csh'        => 'application/x-csh',
    'dcr'        => 'application/x-director',
    'dir'        => 'application/x-director',
    'dxr'        => 'application/x-director',
    'dvi'        => 'application/x-dvi',
    'spl'        => 'application/x-futuresplash',
    'gtar'        => 'application/x-gtar',
    'hdf'        => 'application/x-hdf',
    'js'        => 'application/x-javascript',
    'skp'        => 'application/x-koan',
    'skd'        => 'application/x-koan',
    'skt'        => 'application/x-koan',
    'skm'        => 'application/x-koan',
    'latex'        => 'application/x-latex',
    'nc'        => 'application/x-netcdf',
    'cdf'        => 'application/x-netcdf',
    'sh'        => 'application/x-sh',
    'shar'        => 'application/x-shar',
    'swf'        => 'application/x-shockwave-flash',
    'sit'        => 'application/x-stuffit',
    'sv4cpio'    => 'application/x-sv4cpio',
    'sv4crc'    => 'application/x-sv4crc',
    'tar'        => 'application/x-tar',
    'tcl'        => 'application/x-tcl',
    'tex'        => 'application/x-tex',
    'texinfo'    => 'application/x-texinfo',
    'texi'        => 'application/x-texinfo',
    't'            => 'application/x-troff',
    'tr'        => 'application/x-troff',
    'roff'        => 'application/x-troff',
    'man'        => 'application/x-troff-man',
    'me'        => 'application/x-troff-me',
    'ms'        => 'application/x-troff-ms',
    'ustar'        => 'application/x-ustar',
    'src'        => 'application/x-wais-source',
    'xhtml'        => 'application/xhtml+xml',
    'xht'        => 'application/xhtml+xml',
    'zip'        => 'application/zip',
    'au'        => 'audio/basic',
    'snd'        => 'audio/basic',
    'mid'        => 'audio/midi',
    'midi'        => 'audio/midi',
    'kar'        => 'audio/midi',
    'mpga'        => 'audio/mpeg',
    'mp2'        => 'audio/mpeg',
    'mp3'        => 'audio/mpeg',
    'aif'        => 'audio/x-aiff',
    'aiff'        => 'audio/x-aiff',
    'aifc'        => 'audio/x-aiff',
    'm3u'        => 'audio/x-mpegurl',
    'ram'        => 'audio/x-pn-realaudio',
    'rm'        => 'audio/x-pn-realaudio',
    'rpm'        => 'audio/x-pn-realaudio-plugin',
    'ra'        => 'audio/x-realaudio',
    'wav'        => 'audio/x-wav',
    'pdb'        => 'chemical/x-pdb',
    'xyz'        => 'chemical/x-xyz',
    'bmp'        => 'image/bmp',
    'gif'        => 'image/gif',
    'ief'        => 'image/ief',
    'jpeg'        => 'image/jpeg',
    'jpg'        => 'image/jpeg',
    'jpe'        => 'image/jpeg',
    'png'        => 'image/png',
    'tiff'        => 'image/tiff',
    'tif'        => 'image/tiff',
    'djvu'        => 'image/vnd.djvu',
    'djv'        => 'image/vnd.djvu',
    'wbmp'        => 'image/vnd.wap.wbmp',
    'ras'        => 'image/x-cmu-raster',
    'pnm'        => 'image/x-portable-anymap',
    'pbm'        => 'image/x-portable-bitmap',
    'pgm'        => 'image/x-portable-graymap',
    'ppm'        => 'image/x-portable-pixmap',
    'rgb'        => 'image/x-rgb',
    'xbm'        => 'image/x-xbitmap',
    'xpm'        => 'image/x-xpixmap',
    'xwd'        => 'image/x-xwindowdump',
    'igs'        => 'model/iges',
    'iges'        => 'model/iges',
    'msh'        => 'model/mesh',
    'mesh'        => 'model/mesh',
    'silo'        => 'model/mesh',
    'wrl'        => 'model/vrml',
    'vrml'        => 'model/vrml',
    'css'        => 'text/css',
    'html'        => 'text/html',
    'htm'        => 'text/html',
    'asc'        => 'text/plain',
    'txt'        => 'text/plain',
    'rtx'        => 'text/richtext',
    'rtf'        => 'text/rtf',
    'sgml'        => 'text/sgml',
    'sgm'        => 'text/sgml',
    'tsv'        => 'text/tab-separated-values',
    'wml'        => 'text/vnd.wap.wml',
    'wmls'        => 'text/vnd.wap.wmlscript',
    'etx'        => 'text/x-setext',
    'xsl'        => 'text/xml',
    'xml'        => 'text/xml',
    'mpeg'        => 'video/mpeg',
    'mpg'        => 'video/mpeg',
    'mpe'        => 'video/mpeg',
    'qt'        => 'video/quicktime',
    'mov'        => 'video/quicktime',
    'mxu'        => 'video/vnd.mpegurl',
    'avi'        => 'video/x-msvideo',
    'movie'        => 'video/x-sgi-movie',
    'ice'        => 'x-conference/x-cooltalk',
    'php'       => 'application/x-httpd-php',
);
if(array_key_exists($ext, $mimetypes)){
return $mimetypes[$ext];
}else{
  return "application/octet-stream";
}
}

//Tabel starten
echo '<table>
<tr>
         <td width="200">Bestand:</td>
         <td width="75">Type:</td>
         <td width="100">Grootte:</td>
         <td width="200">Laatst gewijzigd:</td>
         <td width="200">MIME type:</td>
</tr>
<th colspan="5">
         <hr>
</th>
';
//Dir openen
if($_GET['dir'])
{
$dir = opendir($_GET['dir']);
}else
{
$dir = opendir("./");
}
//While lus starten om voor elk bestand datgene uit te voeren
while($read = readdir($dir)){
if($_GET['dir'])
{
$dirr = $_GET['dir'];
}else
{
$dirr = "./";
}
//De nodige variabelen oproepen

  $r = "$dirr/$read";
  $extension_file_explode = explode(".", $read);
  $extension_file = end($extension_file_explode);
  $files = filesize($r);
  $files = "$files B";
  $mime = mime_extension($extension_file);
  $filetype = filetype($r);
  $lgewijzigd = date("d-m-Y H:i:s", filemtime($r));
  $self = $_SERVER['PHP_SELF'];
  $arrayfiletype = array(
  'dir' => 'Map&nbsp;&nbsp;',
  'file' => 'Bestand&nbsp;&nbsp;',
  );
  $filet = $arrayfiletype[$filetype];
//De url's oproepen voor de mappen
if($filet=="Map&nbsp;&nbsp;"){
  $mime = "Map";
if($_GET['dir'] || $_GET['dir'] != "/.." || $_GET['dir'] != "/.")
 {
  $reade = '<a href="'.$self.'?dir='.$_GET['dir'].'';
  if(isset($_GET['dir'])){
    $reade .= "/";
  }
  $reade .= ''.$read.'">'.$read.'</a>';
}
//De url's oproepen voor de bestanden
}elseif($filet=="Bestand&nbsp;&nbsp;")
{
  if($_GET['dir'] || $_GET['dir'] != "/.." || $_GET['dir'] != "/.")
  {
  $reade = '<a href="'.$_GET['dir'].'/'.$read.'">'.$read.'</a>';
  }elseif(!isset($_GET['dir']) || $_GET['dir']=="/.." || $_GET['dir'] == "/.")
  {
  $reade = '<a href="'.$_GET['dir'].''.$read.'">'.$read.'</a>';
  }
}
//Laat de bestanden en hun details zien
if($read != ".")
  {
  echo '<tr>
         <td>'.$reade.'</td>
         <td>'.$filet.'</td>
         <td>'.$files.'</td>
         <td>'.$lgewijzigd.'</td>
         <td>'.$mime.'</td>
</tr>';
  }
}
echo '</table>';
//Sluit de directory
closedir($dir);
?>

Reacties

0
Nog geen reacties.