• ベストアンサー
  • すぐに回答を!

フォルダ内のファイル名を取得して配列にぶち込みたいです

こんにちは。 フォルダ内ファイル名を一覧にして表示させることまでは出来ますが、 この一覧表示されたファイル名を配列に入れるにはどうしたらよいでしょうか。 <?php $dir = "sample/"; // ディレクトリの内容を読み込みます。 if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { echo "filename: " . $file . "<br />\n"; } closedir($dh); } ?> ご教示宜しくお願い致します。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数3265
  • ありがとう数2

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

  • ベストアンサー
  • 回答No.2

$files = array(); if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { $files[] = $file; } closedir($dh); } 配列名[]への代入は、配列末尾への要素の追加を意味する。 http://jp2.php.net/manual/ja/language.types.array.php それとこの方法だと、「.」(ドットひとつ)、「..」(ドットふたつ)という文字列が入ってくるのと、ディレクトリの中にディレクトリがあった場合それも取ってきてしまう。 whileの中にif文を入れて除外した方がいい。 http://jp2.php.net/manual/ja/function.readdir.php

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • フォルダ内のファイル名取得の仕方が分かりません

    Apache2.0.47、PHP4.3.2で使用しています。 フォルダ内のファイル名の取得を以下のように書いています。 (scandirは使えませんでした) <?php $dir = "test_dir"; $dh = opendir($dir); while (false !== ($filename = readdir($dh))) { $files[] = $filename; } sort($files); print_r($files); ?> "."と".."も取得されるので、以下のように変更したのですが同じ結果でした。 <?php $dir = "test_dir"; $dh = opendir($dir); while (false !== ($filename = readdir($dh))) { if(filename!=". "){ if(filename!=".. "){ $file[] = $filename; } } } sort($files); print_r($files); ?> "."と".."をはぶいたファイル名だけを取得したい場合にはどうすればよいのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPでディレクトリ名のみ表示する方法が知りたいです。以下のプログラム

    PHPでディレクトリ名のみ表示する方法が知りたいです。以下のプログラムで「test」というディレクトリ内のファイル一覧(ディレクトリ名とファイル名)を表示するようにしているのですが、この中からディレクトリ名のみ表示させたいのですがどのようにすればいいのでしょうか? よろしくお願いします。 <?php if ($dir = opendir("test/")) { while (($file = readdir($dir)) !== false) { if ($file != "." && $file != "..") { echo "$file<br>\n"; } } closedir($dir); } ?>

    • ベストアンサー
    • PHP
  • readdirでのファイル名取得

    readdir()にて、textファイルのみ取り出すにはどのようにすれば良いのでしょうか? 現状は、後処理で、/txt|TXT/でマッチさせています。 opendir(DIR,"./DATA/"); @file=readdir(DIR); closedir(DIR); foreach $myfilename(@file){ if($myfilename=~/txt|TXT/){ print "$myfilename\n"; #確認用 } } よろしくお願いいたします。

    • ベストアンサー
    • Perl

その他の回答 (1)

  • 回答No.1
  • notnot
  • ベストアンサー率47% (4635/9732)

$files=array(); $n=0; としておいて、 $files[$n++]=$files;

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • PHPのopendir関数って・・・。

    <?php $dir = "/etc/php5/"; // 既知のディレクトリをオープンし、その内容を読み込みます。 if (is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { echo "filename: $file : filetype: " . filetype($dir . $file) . "\n"; } closedir($dh); } } ?> 上の例の出力は、たとえば以下のようになります。 filename: . : filetype: dir filename: .. : filetype: dir filename: apache : filetype: dir filename: cgi : filetype: dir filename: cli : filetype: dir とありますが、 filename: . : filetype: dir filename: .. : filetype: dir は何もフォルダになくても出ますよね? これは何ですか??

    • ベストアンサー
    • PHP
  • ファイル名を取得できない

    次のようなソースでディレクトリ内のファイル名を取得しようとしています。 $dh=opendir("."); while(($entry=readdir($dh))){ if(is_file($entry)){ print $entry."<>"; } } closedir($dh); このソースを、取得したいディレクトリ内で動かすとまったく問題ないのですが、ディレクトリのパスを1個上の階層などから相対パスで指定すると、.phpファイルと.htmlファイルは取得するのですが、ほかのファイル名は取得されなくなってしまいます。 何かphp.iniなどで設定があるのでしょうか。 回避方法がありましたら是非ご教授ください。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • フォルダ内のTXTファイル一覧表示

    opendir(DIR,"./"); while($bbb=readdir(DIR)) { print "<a href=\"$bbb\">$bbb</a><br>\n"; } closedir(DIR); で、取得するファイルをTXTに限定したいと思っています。 どのように追加すればいいかご存知の方がいましたら 教えて下さい。

    • ベストアンサー
    • Perl
  • ディレクトリ名を取得したい

    perlでディレクトリ名だけを取得したいのですが、 なかなかうまい方法が見つかりません。 ファイル名を取得する・・・というのは結構あるのですが、 ディレクトリ名だけ、というのがどうもわかりません。 ちなみにファイル名取得は以下のようにやっています。 my $md; opendir(DIR, 'q'); while (defined($dir = readdir(DIR))) { $md=substr($dir,0,6); } closedir(DIR); ディレクトリ名だけを取得・・・というのはどうやればよいのでしょうか。

    • ベストアンサー
    • Perl
  • readdir におけるフルパスでのファイル名取得(1)

    前提: current directory---perl scriptが存在する data directory -----.\DATA¥ current directory直下のフォルダ"DATA"に含まれるファイル名(text file)の取得は、 ------------------------------ opendir(DIR,"./DATA/"); @file=readdir(DIR); closedir(DIR); foreach $myfilename(@file){ if($myfilename=~/txt|TXT/){ print "$myfilename\n"; #確認用 } } で、できますが、フルパス付は、どのようにすればできるでしょうか? 現状、DOS promptで下記のようにやっています。 dir /s/b/o .\DATA\*.txt > filelist.dat これを、perlで読み込んで、処理をやっています。 readdirをうまく使って、perlの中で済ませてしまいたいのです。 よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • CGIがある場所以外のディレクトリの内容表示方法

    ディレクトリ内にあるファイルの一覧を表示しようとしていますがうまく出来ません。 ---------------- opendir(DIR, "./"); @dir_value = readdir(DIR); closedir(DIR); ---------------- この状態だともちろんですが、CGIがあるディレクトリの一覧を表示します。(この状態で、表示する部分のプログラム(ソース?)が間違っていないことはわかります) この1つ下(同ディレクトリ内に「img」ディレクトリ作成)の内容を表示したいのですが、うまく出来ません。 単純に、 ---------------- opendir(DIR, "./img"); @dir_value = readdir(DIR); closedir(DIR); ---------------- と、してみましたがファイルを表示しません。 他にも、「./img/」または絶対パス(/home/~~)でもだめでした。 下または上のディレクトリを参照するのには上記変更だけでは出来ないのでしょうか? 方法がありましたらお願いします。

    • ベストアンサー
    • CGI
  • readdir()で得られるファイル・ディレクトリ情報の順番は?

    Perlプログラムにて、  opendir(DIR, '.');  @dir_list = readdir(DIR);  closedir(DIR); などとすると、そのディレクトリにあるファイルとディレクトリの一覧情報を得ることができますが、この場合、@dir_list にはどのような順番で情報が格納されるのでしょうか? readdir() 関数の仕様が知りたいです。ご存知の方、ぜひ教えてください。

    • ベストアンサー
    • Perl
  • ファイル一覧表(LAN内の別PC)

    PHPのあるサーバ(A)、ファイルサーバ(B) サーバ(B)の特定フォルダに画像ファイルが複数存在します。そちらを一覧表示するページを作成したいと思っています。 現在、ファイル取得を行う過程において、サーバ(B)のディレクトリオープンに失敗している状況です。 ---------------<< 以下ソース >>--------------- $target = dirname("./"); if ($dir = opendir($target)) { while (($file = readdir($dir)) !== false) { if ($file != "." && $file != "..") { echo "<A href=\"$file\">$file</A><br>"; } } closedir($dir); } ---------------------------------------------- 上記のように自サーバのディレクトリ指定はいけますが 別サーバの指定がわかりません。 簡単っぽいのですが、宜しくお願いします。

    • ベストアンサー
    • PHP
  • ショートカットのURLをファイルに出力したい。

    C:\WINDOWS\Favoritesには、お気に入りに登録してたもののショートカットがあります。 各ショートカットのURLをファイルに出力する事は出来るでしょうか? opendir(DIR, "C:/WINDOWS/Favorites/"); @dir_value = readdir(DIR); closedir(DIR); @file = grep(-f,@dir_value); ダメ元でやってみたのですが、ショートカットはファイルではない?のでファイル名の取得も出来ませんした。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • フォルダの中身を知りたい

    opendir dir , $FORM{'user'}; @dir_file = readdir(dir); だったところを $open_folder = "../../img/cgi-bin/uploader/" . $FORM{'user'}; opendir dir , $open_folder; @dir_file = readdir(dir); というようにしました。 こうするとフォルダの中身が表示されません。 $img = $open_folder . "/ファイル名.gif"; print "<IMG SRC='$img'><BR>\n"; としたところ、きちんと絵が表示されました。 ※ファイル名は存在するファイルの名前をコピーして貼り付けました。 どうすればフォルダの中身を表示できるようになるのでしょうか?

    • ベストアンサー
    • Perl