PHP - 阅读目录&打开文件

时间:2014-04-21 09:12:39

标签: php

我正在关注一个读取目录的网站并打开任何类型的文件,如jpg,png,mp4,pdf等,但它只读取服务器目录意味着在我的xampp目录中我放了​​我的整个代码。 代码适用于读取服务器目录和打开文件,但问题是我想读取我的本地目录,如我的计算机驱动器,驱动器或电子驱动器,当我单击此目录中的任何文件时,它将是open.how我可以帮助我吗

   my code is  

   <!doctype html>
    <html>
   <head>
 <meta charset="UTF-8">
 <link rel="shortcut icon" href="./.favicon.ico">
 <title>Directory Contents</title>

 <link rel="stylesheet" href="./.style.css">
 <script src="./.sorttable.js"></script>
  </head>

 <body>
  <div id="container">
<h1>Directory Contents</h1>

<table class="sortable">
    <thead>
    <tr>
        <th>Filename</th>
        <th>Type</th>
        <th>Size</th>
        <th>Date Modified</th>
    </tr>
    </thead>
    <tbody><?php

 // Adds pretty filesizes
 function pretty_filesize($file) {
    $size=filesize($file);
if($size<1024){$size=$size." Bytes";}
elseif(($size<1048576)&&($size>1023)){$size=round($size/1024, 1)." KB";}
elseif(($size<1073741824)&&($size>1048575)){$size=round($size/1048576, 1)." MB";}
    else{$size=round($size/1073741824, 1)." GB";}
    return $size;
 }

// Checks to see if veiwing hidden files is enabled
if($_SERVER['QUERY_STRING']=="hidden")
{$hide="";
 $ahref="./";
 $atext="Hide";}
else
{$hide=".";
 $ahref="./?hidden";
 $atext="Show";}

 // Opens directory
 $myDirectory=opendir("./");

// Gets each entry
while($entryName=readdir($myDirectory)) {
   $dirArray[]=$entryName;
}

// Closes directory
closedir($myDirectory);

// Counts elements in array
$indexCount=count($dirArray);

// Sorts files
sort($dirArray);

// Loops through the array of files
for($index=0; $index < $indexCount; $index++) {

// Decides if hidden files should be displayed, based on query above.
    if(substr("$dirArray[$index]", 0, 1)!=$hide) {

// Resets Variables
    $favicon="";
    $class="file";

// Gets File Names
    $name=$dirArray[$index];
    $namehref=$dirArray[$index];

// Gets Date Modified
    $modtime=date("M j Y g:i A", filemtime($dirArray[$index]));
    $timekey=date("YmdHis", filemtime($dirArray[$index]));


// Separates directories, and performs operations on those directories
    if(is_dir($dirArray[$index]))
    {
            $extn="&lt;Directory&gt;";
            $size="&lt;Directory&gt;";
            $sizekey="0";
            $class="dir";

        // Gets favicon.ico, and displays it, only if it exists.
            if(file_exists("$namehref/favicon.ico"))
                {
        $favicon=" style='background-image:url($namehref/favicon.ico);'";
                    $extn="&lt;Website&gt;";
                }

        // Cleans up . and .. directories
        if($name=="."){$name=". (Current Directory)"; 
              $extn="&lt;System Dir&gt;"; 
             $favicon=" style='background-image:url($namehref/.favicon.ico);'";}
    if($name==".."){$name=".. (Parent Directory)"; $extn="&lt;System Dir&gt;";}
     }


    else{
        // Gets file extension
        $extn=pathinfo($dirArray[$index], PATHINFO_EXTENSION);

        // Prettifies file type
        switch ($extn){
            case "png": $extn="PNG Image"; break;
            case "jpg": $extn="JPEG Image"; break;
            case "jpeg": $extn="JPEG Image"; break;
            case "svg": $extn="SVG Image"; break;
            case "gif": $extn="GIF Image"; break;
            case "ico": $extn="Windows Icon"; break;

            case "txt": $extn="Text File"; break;
            case "log": $extn="Log File"; break;
            case "htm": $extn="HTML File"; break;
            case "html": $extn="HTML File"; break;
            case "xhtml": $extn="HTML File"; break;
            case "shtml": $extn="HTML File"; break;
            case "php": $extn="PHP Script"; break;
            case "js": $extn="Javascript File"; break;
            case "css": $extn="Stylesheet"; break;

            case "pdf": $extn="PDF Document"; break;
            case "xls": $extn="Spreadsheet"; break;
            case "xlsx": $extn="Spreadsheet"; break;
            case "doc": $extn="Microsoft Word Document"; break;
            case "docx": $extn="Microsoft Word Document"; break;

            case "zip": $extn="ZIP Archive"; break;
            case "htaccess": $extn="Apache Config File"; break;
            case "exe": $extn="Windows Executable"; break;

                         default: if($extn!="")
                  {$extn=strtoupper($extn)." File";} else{$extn="Unknown";} break;
        }

        // Gets and cleans up file size
            $size=pretty_filesize($dirArray[$index]);
            $sizekey=filesize($dirArray[$index]);
    }

   // Output
    echo("
    <tr class='$class'>
        <td><a href='./$namehref'$favicon class='name'>$name</a></td>
        <td><a href='./$namehref'>$extn</a></td>
        <td sorttable_customkey='$sizekey'><a href='./$namehref'>$size</a> 
                    </td>
        <td sorttable_customkey='$timekey'>
                    <a href='./$namehref'>$modtime</a></td>
             </tr>");
       }
     }
  ?>

    </tbody>
    </table>

   <h2><?php echo("<a href='$ahref'>$atext hidden files</a>"); ?></h2>
        </div>
        </body>  

0 个答案:

没有答案