• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ディレクトリ内一覧表示)

ディレクトリ内一覧表示の方法とは?

このQ&Aのポイント
  • PHPを使用してディレクトリ内の中のディレクトリ一覧を表示する方法を教えてください。
  • imageフォルダ内のディレクトリを一覧表示させるためにはどのようなコードを書けば良いですか?
  • 現在「scandir」関数を使用してディレクトリ内のディレクトリ一覧を取得していますが、うまく表示されません。解決策を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • duron
  • ベストアンサー率77% (73/94)
回答No.1

2行目のscandirでディレクトリの内容を配列で受け取っているのに 4行目で配列の要素として$dirArrayに設定している。 これでは$dirArrayの要素数は1個となってしまいます。 ですのでforeachが1回しか処理されません。 scandirは配列が返されるので3行目のif文は無意味です。 戻り値がarrayであるかを調べておいた方がいいです。 foreachをわざわざ使っているのにfor文でファイル名を出力するのは 他に何か目的がない限り無駄かと思います。 というか何でこれで1個ディレクトリ名が表示できたのか一瞬理解できませんでした。 scandirではディレクトリの他にファイルも配列に入ってきます。 また、自身を示す「.」とひとつ上のディレクトリを示す「..」も入ってきます。 ですのでそれらを除外する必要があると思います。 これらを考慮して以下のように書き換えてみました $path = "xxx"; 'imageフォルダまでの絶対パス'; $dir = scandir($path, 1);//フォルダ内降順指定 if(is_array($dir)) { foreach($dir as $val) { if((is_dir($path.$val)) && ($val !== ".") && ($val !== "..")) { echo $val."<br>"; } } }

関連するQ&A

専門家に質問してみよう