• ベストアンサー

フォルダ内のHTMLにランダムに飛ばす

以下のソースでadsフォルダ内にあるhtmlファイルを ランダムに呼び出しているのですが 実行をすると正常に表示をするときと ページが真っ白で何も表示しないときがあり困っています。 どなたかどこに問題があるか分かる方宜しければ 教えて頂けないでしょうか。 宜しくお願い致します<(_ _)> (ソース) <?php $dir_name = "ads"; $ads = array(); $dh = opendir($dir_name); while ($data = readdir($dh)) { if (!is_dir($data)) { array_push($ads, $data); } } closedir($dh); shuffle($ads); include("$dir_name/$ads[0]"); ?> (プログラムの目的) adshuffle.phpにアクセスするとadsフォルダ内にあるhtmlを ランダムに読み込む。 (階層) |_adshuffle.php |_ ads  |_ 001.html  |_ 002.html  |_ ・  |_ ・  |_ ・  |_ 999.html *最終的な目的は999までhtmlを増やしていく予定です。

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

  • ベストアンサー
  • wp_
  • ベストアンサー率54% (132/242)
回答No.2

is_dirではなくfile_existの間違いではないですか? >if (!is_dir($data)) { >if (!file_exists($dir_name."/".$data)) { たまに出ると言うのが不可解ですが。

参考URL:
http://php.mirror.camelnetwork.com/manual/ja/function.is-dir.php
hirofuji
質問者

お礼

原因がいまひとつ分かりませんが自己解決しました。 有難うございました(_ _)

その他の回答 (1)

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

http://de3.php.net/manual/ja/function.readdir.php ときどき「false」が帰ってきてるとか「./」も取得してしまっているとかなんじゃないのかなぁ? $dataを正しく検査してからpushすべきじゃないかと思うけどどう?

hirofuji
質問者

お礼

原因がいまひとつ分かりませんが自己解決しました。 有難うございました(_ _)

関連するQ&A