2015-09-07 24 views
3

我想從文件中獲取目錄數據。filetype()的Lstat錯誤。後面的例子從php.net

希望的行爲我想讓代碼回顯出目錄。我最終會把它放在一個數組中。

問題我得到幾個警告:filetype():Lstat失敗的錯誤。所有這些都在WAMP上進行了測試。

這裏是我的代碼:

$dir = "../images/"; 


echo $dir; 

if (is_dir($dir)){ 
    if ($dh = opendir($dir)){ 
     while ($file = readdir($dh) !== false){ 
      echo "filename: $file : filetype: ". filetype($dir . $file). "</br>"; 
     } 
    closedir($dr); 

     } 
} 

任何幫助將不勝感激。

+0

我不明白你的意思。你能澄清嗎? –

回答

2

不要忘了先來的...。測試他們。

<?php 
.... 
if (is_dir($dir)){ 
    $dh=opendir($dir); 
    while ($file = readdir ($dir)) { 
    if ($file != "." && $file != "..") { 
     echo "filename: $file : filetype: ". filetype($dir . $file)."</br>"; 
    } 
    } 
    closedir($dh); 
} 
?> 

更新

要測試腳本,把它放在一個水平上面的文件夾images和嘗試這個辦法:

<?php 
chdir ('images'); 
$dh=opendir('.'); 
while ($file = readdir ($dh)) { 
    if ($file != "." && $file != "..") { 
     echo "filename: $file : filetype: ". filetype($file)."</br>"; 
    } 
} 
    closedir($dh); 
?> 

問題

爲什麼使用if ($file != "." && $file != "..") {

readdir() show also if there are above levels of the directory

所以首先你得到readdir()

  • 1)'.'
  • 2)'..'
  • 3)afile.jpg
+0

所以我遵循你的代碼並修復了。 closedir($ DH);但現在沒有什麼會彈出。我猜測它沒有通過。爲什麼不是? –

+1

@JPFoster:我的代碼應該只顯示你必須放置'if()'語句。在你的初始代碼中只放入'if($ file!=「。」...){your code}'。 –

+0

我不確定我是否遵循。 「最好的把腳本放在一層以上然後」是什麼意思?我試圖將目錄移動到/ images以確保目錄是正確的並且沒有輸出(並且文件夾中有圖片文件)。 雖然我還沒有嘗試chdir函數。我會在哪裏放第二塊代碼?在第一條if語句之前? –