• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:自社サイトの管理をしているプログラム初心者です。)

自社サイトの管理をしているプログラム初心者です。HTMLファイルをランダムに表示する方法を教えてください。

このQ&Aのポイント
  • 自社サイトの管理をしているプログラム初心者です。現在index.php内の一部分に、HTMLファイル(1点)読み込んで表示しているのですが、これを2~3点のHTMLファイルをランダムに表示するよう修正を加えたいと思っております。
  • 調べてみたところ、現在「include」で読み込んでいるHTMLファイルの指定(下記参照)を、phpのスクリプトを記載した外部ファイルのテキストファイルの指定をするのが良いかと思ったのですが、肝心のスクリプトのサンプルが探せませんでした。そもそもこの方法で良いのかも正直不安です。
  • できるだけ簡単な方法と、必要な外部ファイルがありましたらスクリプトを教えてください。

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

  • ベストアンサー
  • smileeeen
  • ベストアンサー率70% (21/30)
回答No.3

複数のファイルの中から、ランダムで1つを選択して、 そのファイルを読み込みたいという事でよろしいでしょうか。 下記のような形で書いておけば、 一番最初の$include_filesの定義部分を変更するだけで 読み込むファイルの削除や追加が行えるので便利かと思います。 <?php // 読み込む候補ファイルの指定 $include_files = array('a.htm', 'b.htm', 'c.htm'); // 候補ファイル数の取得 $num = count($include_files); // 候補ファイル数未満の数値をランダムで取得 $rnd = mt_rand(0, $num - 1); // ランダムに選ばれたファイルの読み込み include($include_files[$rnd]); ?>

rinego
質問者

お礼

試してみたところ、ちゃんとランダム表示できました。この方法なら、本当に簡単にファイルの追加や削除ができますね! どうもありがとうございました。

その他の回答 (2)

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

htmlファイル自体の中身が競合しそうですが、とりあえずこんな感じでできそうです <?php if ($dir = opendir("./")) { while (($file = readdir($dir)) !== false) { if (preg_match("/\.htm$/",$file)) { $files[]=$file; } } closedir($dir); shuffle($files); $files=array_slice($files,0,3); foreach($files as $file){ include($file); } } ?>

rinego
質問者

お礼

さっそくのお返事ありがとうございました。まだphpに慣れておらず、細かいスクリプトの部分がよくわからないのですが、試してみたいと思います。

  • qaqa246
  • ベストアンサー率27% (45/163)
回答No.1

乱数

rinego
質問者

お礼

さっそくのお返事ありがとうございました。勉強してみます。

関連するQ&A