• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:fopenで変数で指定したファイルの開き方)

fopenで変数で指定したファイルの開き方

このQ&Aのポイント
  • 同階層にあるディレクトリの中の更新日付が最新のファイルを整形してHTML形式にて出力するスクリプトを書いています。
  • ファイルが開かれていません。よってfopenで変数で指定されたファイルを開く方法をご教授願います。
  • もし『fopen使うこと自体が誤っている』ということでしたら正しい書き方をご教授願います。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

$fnm = readdir($dir) で読み取られるファイル名には、 読み込んでいるディレクトリにファイル以外のディレクトリが無くても "." 及び ".." のような自ディレクトリと親ディレクトリがありますので、それをスキップする必要があります。 例えば、以下のようにしてスキップできます。 while ($fnm = readdir($dir)) { if($fnm == "." || $fnm == "..") continue;

wf3255
質問者

お礼

スキップの方法をありがとうございます。 無事解決いたしました。

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

#2様が指摘されているように $ftime = filemtime("./aaa/$fnm"); $latestfilename = "./aaa/$fnm"; のようにする必要があります。

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

while ($fnm = readdir($dir)) { (略)   $latestfilename = $fnm;   $handle = @fopen("$latestfilename", "r"); ここで、fopenに渡している $latestfilenameの値は readdirの呼び出しで 返ってきたものなので、ディレクトリ名が含まれていないんじゃないですか? opendir に渡しているディレクトリ名(./aaa)を付加してやらないと正しい パス名にならないのではないでしょうか? そもそも、fcloseじゃなくて、fopenでエラーが起きているのかどうかを 判定すべきだと思いますが。

関連するQ&A