- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:fopenで変数で指定したファイルの開き方)
fopenで変数で指定したファイルの開き方
このQ&Aのポイント
- 同階層にあるディレクトリの中の更新日付が最新のファイルを整形してHTML形式にて出力するスクリプトを書いています。
- ファイルが開かれていません。よってfopenで変数で指定されたファイルを開く方法をご教授願います。
- もし『fopen使うこと自体が誤っている』ということでしたら正しい書き方をご教授願います。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
$fnm = readdir($dir) で読み取られるファイル名には、 読み込んでいるディレクトリにファイル以外のディレクトリが無くても "." 及び ".." のような自ディレクトリと親ディレクトリがありますので、それをスキップする必要があります。 例えば、以下のようにしてスキップできます。 while ($fnm = readdir($dir)) { if($fnm == "." || $fnm == "..") continue;
その他の回答 (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でエラーが起きているのかどうかを 判定すべきだと思いますが。
お礼
スキップの方法をありがとうございます。 無事解決いたしました。