แสดง รายการไฟล์ต่างๆ บน Server

ตัวอย่างการสร้าง File menager แบบหนึ่งครับ ที่แสดงรายการไฟล์ และ ไดเร็คทอรี่ บน server พร้อมไอคอน ด้วยโค้ด PHP

โค้ดจาก http://www.weberdev.com

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Ftp Explorer .::. Download page</title>
<style type="text/css">
<!--
body {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 11px;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    color: #333333;
    text-decoration: none;
    padding: 20px;
}
img {
    border: 0px;
}
a {
    color: #333333;
    text-decoration: none;
}
a:hover {
    color: #0066FF;
}
-->

</style>

</head>
<body>
<?php
// install variables
$host = "http://www.orosandrei.ro/download/"; // the folder where index.php is located
// path for folder, file, buttons(back and home) images
$img_back="http://www.orosandrei.ro/images/back.gif";
$img_folder="http://www.orosandrei.ro/images/folder.gif";
$img_file="http://www.orosandrei.ro/images/file.gif";
$img_home="http://www.orosandrei.ro/images/home.gif";
// end of install variables // returns the extension of a file
function strip_ext($name)
{
     $ext = substr($name, strlen($ext)-4, 4);
     if(strpos($ext,'.') === false) // if we have a folder element
     {
           return " "; // we return a string of space characters for later sort,
              // so that the folder items remain on the first positions
     }
     return $ext; // if we have a file we return the extension - .gif, .jpg, etc.
}
// returns the files from the $path and returns them in an array
function getFiles($path) {
   $files = array();
   $fileNames = array();
   $i = 0;
   // build
   if (is_dir($path)) {
    if ($dh = opendir($path)) {
     while (($file = readdir($dh)) !== false) {
      if (($file == ".") || ($file == "..")) continue;
      $fullpath = $path . "/" . $file;
      //$fkey = strtolower($file);
      $fkey = $file;
      while (array_key_exists($fkey,$fileNames)) $fkey .= " ";
      $a = stat($fullpath);
      $files[$fkey]['size'] = $a['size'];
      if ($a['size'] == 0) $files[$fkey]['sizetext'] = "-";
      else if ($a['size'] > 1024 && $a['size'] <= 1024*1024) $files[$fkey]['sizetext'] = (ceil($a['size']/1024*100)/100) . " K";
      else if ($a['size'] > 1024*1024) $files[$fkey]['sizetext'] = (ceil($a['size']/(1024*1024)*100)/100) . " Mb";
      else $files[$fkey]['sizetext'] = $a['size'] . " bytes";
      $files[$fkey]['name'] = $file;
      $e = strip_ext($file); // $e is the extension - for example, .gif
      $files[$fkey]['type'] = filetype($fullpath); // file, dir, etc
      $k=$e.$file; // we use this string for sorting the array elements by extension and filename;
      $fileNames[$i++] = $k;
     }
     closedir($dh);
    } else die ("Cannot open directory: $path");
   } else die ("Path is not a directory: $path");
   sort($fileNames,SORT_STRING); // sorting
   $sortedFiles = array();
   $i = 0;
   foreach($fileNames as $f) {
     $f = substr($f, 4, strlen($f)-4); // we remove the extension we added in front of the filename for sorting
     if($files[$f]['name'] !='') $sortedFiles[$i++] = $files[$f];
    }// ends the foreach where we build the final sorted array
   return $sortedFiles;
}
// folder navigation code
$startdir = "./";
if(isset($_GET['dir'])) {
    $prev = $_GET['dir'];
    $folder = $_GET['dir'];
    echo "<a href=\"javascript:history.go(-1)\"><img src=\"$img_back\"></a> <a href=\"$host\"><img src=\"$img_home\"></a> <br/><br/>";
} else { $folder = $startdir; $prev='';}
// end folder navigation code
$files = getFiles($folder); foreach ($files as $file) {
    if(strip_ext($file[name])!='.php'){
     $image = $img_file;
     if($file[type]=='dir') {
      $image = $img_folder;
      $cmd='?dir='.$prev.$file[name].'/';
     }// if the element is a directory
     else $cmd=$prev.$file[name];
     echo "<a href=\"$cmd\" title=\"$file[type], $file[sizetext]\"><img src=\"$image\" /> $file[name]</a> <br/>";
    }//if strip_ext
}//foreach
?> </body>
</html>
ผู้เขียน goragod โพสต์เมื่อ 31 มี.ค. 2551 เปิดดู 9,111 ป้ายกำกับ PHP
^