- ベストアンサー
フォルダ内の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を増やしていく予定です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
is_dirではなくfile_existの間違いではないですか? >if (!is_dir($data)) { >if (!file_exists($dir_name."/".$data)) { たまに出ると言うのが不可解ですが。
その他の回答 (1)
- SAYKA
- ベストアンサー率34% (944/2776)
http://de3.php.net/manual/ja/function.readdir.php ときどき「false」が帰ってきてるとか「./」も取得してしまっているとかなんじゃないのかなぁ? $dataを正しく検査してからpushすべきじゃないかと思うけどどう?
お礼
原因がいまひとつ分かりませんが自己解決しました。 有難うございました(_ _)
お礼
原因がいまひとつ分かりませんが自己解決しました。 有難うございました(_ _)