2013-06-24 64 views
0

我目前有一個沒有驚險上傳的代碼如下。它還顯示包含文件夾的內容,但echo "$indexCount files<br/>";返回文件數+2,但我無法看到變量是如何到達這個數字的。PHP目錄內容 - 計算錯誤並刪除某些文件

另外我想表不顯示頁面本身(index.php)和error_log。我嘗試了一下這個邏輯:if the name of the file is x or y then go to next file,但我無法讓它工作。

謝謝。

<form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST"> 
Please choose a file: <input name="file" type="file" /><br /> 
<input type="submit" value="Upload" /></form> 


<?php 

if (!empty($_FILES["file"])) 
{ 
    if ($_FILES["file"]["error"] > 0) 
     {echo "Error: " . $_FILES["file"]["error"] . "<br>";} 
    else 
     {echo "Stored file:".$_FILES["file"]["name"]."<br/>Size:".($_FILES["file"]["size"]/1024)." kB<br/>"; 
     move_uploaded_file($_FILES["file"]["tmp_name"],$_FILES["file"]["name"]); 
     } 
} 

    // open this directory 
    $myDirectory = opendir("."); 
    // get each entry 
    while($entryName = readdir($myDirectory)) {$dirArray[] = $entryName;} closedir($myDirectory); 
    $indexCount = count($dirArray); 
     echo "$indexCount files<br/>"; 
    sort($dirArray); 

    echo "<TABLE border=1 cellpadding=5 cellspacing=0 class=whitelinks><TR><TH>Filename</TH><th>URL</th><th>Wiki Syntax</th></TR>\n"; 

     for($index=0; $index < $indexCount; $index++) 
     { 
      if (substr("$dirArray[$index]", 0, 1) != ".") 
      { 
      echo "<TR> 
      <td><a href=\"$dirArray[$index]\">$dirArray[$index]</a></td> 
      <td>http://www.example.com/$dirArray[$index]</td> 
      <td><input type='text' value='[[http://www.example.com/$dirArray[$index]|$dirArray[$index]]' /></td> 
       </TR>"; 
      } 
     } 
    echo "</TABLE>"; 
    ?> 

回答

1

它們是...目錄。你看不到他們,因爲substr("$dirArray[$index]", 0, 1) != "."爲他們返回false

while循環中,您可以對它們進行過濾,也可以取消設置$dirArray的前兩個元素。

+0

謝謝帕米爾。我如何過濾特定的文件(index.php&error_log)?我不知道如何將它們添加到'if(substr(「$ dirArray [$ index]」,0,1)!=「。」)' – redditor

+1

如果你不想查看這些,你可以做類似於: '$ filters = array(「index.php」,「error_log」,「。」,「..); if(false === in_array($ dirArray [$ index],$ filters){/*不顯示* /} else {/ *顯示* /}' – pamil

1

爲什麼它返回number of files + 2的原因可能是readdir調用次數也...目錄項,其中提到當前和父目錄。

+0

這很好,我沒有想到隱藏的文件。那麼我怎樣才能從我的表數據中刪除index.php和error_log? – redditor

相關問題