• ベストアンサー

printfで表示させるのは一度にしたい

QNo.2814162で質問させていただいた者です。 下記のスクリプトで./tttディレクトリに5日以内に作成されたファイルがあれば"ABCDEFGHI"と表示させようと思っております。 (5日以内に作成されたファイルが無ければ何も表示しない) しかし、./tttディレクトリにマッチしたファイルの数だけ "ABCDEFGHI"が表示されてしまいます。 もしマッチしたファイルが合った場合、 一度だけ"ABCDEFGHI"と表示させるようにするにはどうしたらよいでしょうか? <? $dir = opendir("./ttt"); $latestfile = 0; while ($fnm = readdir($dir)) { if($fnm == "." || $fnm == "..") continue; $ftime = filectime("./ttt/$fnm"); $nowdate =strtotime(date("Y-m-d")); if(strtotime($nowdate) - $ftime <= 5*24*60*60) { printf("ABCDEFGHI"); } else { printf(""); } } ?>

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

printfしたあとbreakすればよいでしょう。

wf3255
質問者

お礼

そのとおりでした。 ありがとうございます。

その他の回答 (2)

noname#39970
noname#39970
回答No.2

No1の他にも print自体をカウンタ変数に置き換え、ループの外で0でなければprintfという形を取る方法も考えられる。 そのやり方なら適合した個数を所持する事ができる。(用途があるなら だけど) やり方によっては適合したpathをリスト化しておいて再利用も

wf3255
質問者

お礼

解決いたしました。大変勉強になりました。 ありがとうございます。

回答No.1

if-break構文で解決しませんか?

wf3255
質問者

お礼

解決いたしました。他業務でパニックになり、基本をド忘れしていました。 ありがとうございます。

関連するQ&A