2016-07-16 10 views
0

サーバーにもあるPHPスクリプトを使用して、サーバー上にディレクトリを設定する必要があります。 (私は//public_htmlの/ステッカーのサブディレクトリが何であるかを知っておく必要があります(FTP)PHPを使用してサーバー上のディレクトリを一覧表示

1

、これはlistDirectory.phpで書かれたコードである:ここでは、サーバー上の私のフォルダ構造がありますどのくらいの数のファイルがそれらのサブディレクトリに存在しているか)私はそれをハードコードできると知っていますが、ファイルが大きく変わるので動的なアプローチが必要です。

<html> 
<title>Directories</title> 
<body> 
    <?php 
     $directory = $_SERVER['DOCUMENT_ROOT'] . '/stickers/'; 
     echo "<p>$directory</p>"; 

     $sticker_directories = array(scandir($directory)); 

     echo "<p>Number of subdirs at $directory :". count($sticker_directorie) . "</p>"; 

     foreach ($sticker_directories as $dir){ 
      $working_dir = $directory.$dir; 
      echo "<p>$working_dir</p>"; 
      if (is_dir($working_dir)){ 

       echo "<p>$working_dir" . count(scandir($working_dir)) . "</p>"; 
      } 
     } 
    ?> 
</body> 
</html> 

と、これが出力されます:

/home/u826063014/public_html/stickers/ 

Number of subdirs at /home/u826063014/public_html/stickers/ :0 

/home/u826063014/public_html/stickers/Array 

私は期待していた結果ではありません。私は間違って何をしていますか?

(私はこのすべてに全く新たなんだ)すべてscandir

答えて

1

まず、すでに配列を返します。 arrayを使用する必要はありません。

$sticker_directories = scandir($directory); 

// `scandir` returns both files and subdirs. So, this string is not true 
echo "<p>Number of subdirs at $directory :". count($sticker_directories) . "</p>"; 
//                 ^s missed 

これ以降はすべて問題ありません。

+0

私は早くそれに一日を過ごすように頼んでいたはずです...それは今働いています。私はStackOverflowが私に許してくれたとき、答えとしてあなたの反応をマークします。奇妙なことは、このコードはWindows上で動作していたが、サーバ上では動作していないということです。 –

関連する問題