こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ファイル検索

こんにちは。質問させてください。

あるフォルダ(ここでは$dir = "c:\\test\\file_data\\"とでもしておきます。)内に
テキストファイルが複数存在するとします。
test1218.01.file1.txt
test1218.10.file1.txt
test1218.11.file1.txt
test1219.01.file1.txt
test1219.10.file1.txt
test1219.11.file1.txt
test1219.01.file2.txt
test1219.10.file2.txt
test1219.11.file2.txt
上記のようなファイル名のテキストファイルが存在したとします。
それでこのテキストファイルのうち、以下のファイルの内容を画面に表示したいと
考えています。
test1219.01.file1.txt
test1219.10.file1.txt
test1219.11.file1.txt

1219(今日の日付という意味), file1(一回目のファイルという意味)で
構成された上記のファイルを指定されたディレクトリ($dir)以下で
検索し上記のファイル名を取得し、また取得したファイルの中身を
表示するロジックを考えています。

ひとつのファイルを取得することはできたのですが、
複数となる(上記の場合は3つ当てはまることはわからないので
指定する日付などで取得ファイル数がかなりことなる)ため
うまく書くことができません。
どなたかいいロジックなどをお持ちでしたら
ぜひ伝授していただけたらと考えています。

どうかよろしくお願いいたします。

投稿日時 - 2002-12-19 14:11:10

QNo.431398

653

すぐに回答ほしいです

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

まず該当するファイル名を配列として持っておきます。
条件が今日でいいのであれば、

$files=array();
$diropen=opendir("$path");  //ファイルがカクのされているディレクトリのパス
while($file_name=readdir($diropen)) {
  if(ereg("test".date("m").date("d"),$file_name)) {
    array_push($file_name);
  }
}

これで指定されたファイルだけが配列$filesに格納されます。
後は、どういった形で表示したいのか分かりませんので、何も言えませんが、一例を挙げれば
foreach($files as $a_file) {
  $fileopen=file($a_file) {
    foreach($fileopen as $line) {
      print $line."<br>\n";
    }
  }
  print "<hr>\n";
}

こんな感じです。

投稿日時 - 2002-12-19 14:48:46

お礼

早速の回答ありがとうございます。
上記のロジックを実際にくみこんだらうまくいきました。
どうもありがとうございましたーー!!

投稿日時 - 2002-12-19 14:50:38

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問