2017-07-17 125 views
-1

我在我的系統中顯示目錄的內容。而且我一直得到一個錯誤,而在本地主機上運行它:: ,我得到的錯誤是::提前傢伙警告:filemtime():stat失敗

The ScreenShot of my Error Page 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<6024){$size=$size." Bytes";} 
    elseif(($size<1048576)&&($size>6023)){$size=round($size/6024, 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("D:/word 1"); 

// 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;";} 
    } 

// File-only operations 
    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> 
</html> 

回答

0

問題是,$文件只是沒有目錄前綴的文件名,因此檢查它將不起作用。一種方法是使用絕對文件名(例如$ realfile)。然後你必須改變你的代碼,並使用這個變量進行文件檢查

我認爲問題是文件的實際路徑。例如,您的腳本正在處理'./',您的文件位於'./xml'目錄內。因此,更好地檢查文件是否存在,然後獲取filemtime或取消鏈接