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

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

自社サイトの管理をしているプログラム初心者です。

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

  • PHP
  • 回答数3
  • ありがとう数6

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

  • ベストアンサー
  • 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

  • PHPが出力したHTMLにinclude文を

    PHP4.3で、HTMLファイルをテンプレート出力する方式の掲示板を使っているのですが、テンプレートのHTMLファイル内に別のPHPスクリプトで出力した表示を貼り付けようと思い、 <?include("hoge.php");?> とinclude文を書き込んだのですが、これが反映されずにソース内に<?include("hoge.php");?>という記述がそのまま出て来てしまいます。 これが出来ない原因は、PHP実行→HTML表示→HTML内のPHP実行という二度のPHP実行が出来ないのか、<?include~を「文字列」として認識してしまっているのかのどちらかだと思うのですが、、 PHPファイルには一切手が加えられない状況なので、テンプレートHTMLに手を加えるだけで別のPHPスクリプトを読みこませたいのですが、何かいい方法は無いでしょうか?

    • ベストアンサー
    • PHP
  • JavaScriptで外部htmlをインクルード

    至らないところがありますが、どうぞよろしくお願い致します。 目的はhtmlとJavascriptだけで、html内に他のhtmlの内容を表示することです。 Makeshop.jpを使用しているのでPHP、CGI、SSI等は使用できません。   下記リンクを参考にローカル上で外部htmlファイルの読み込みは出来ましたが、   includeの関数を呼び出す所でhttpから始まるパスを指定すると   外部htmlファイルの読み込みは出来ませんでした。   ”静的HTMLで、インクルードを実現するためのJavaScript”   http://d.hatena.ne.jp/kenpoco/20080501/1209636103   現状のパスの指定はこんな感じです。 <div> <script type="text/javascript" > include("http://www.XXX/hoge.htm"); </script> </div>   エラーが発生する部分は、関数の下記の一文です。   insertBeforeHTML(s.split("&gt;").join(">").split("&lt;").join("<"), span);   原因は分かっていません。 上記の原因解決や、また他の方法があれば教えていただきたいです。 読んで頂きありがとうございます。

  • 外部ファイルの読み込み

    HTMLにPHPの外部ファイルを読み込みたいと考えています。 <?php include ("1.php"); ?> <html> <head> <title></title> </head> <body> <div> <?php include ("2.php"); ?> </div> </body> </html> <?php include ("3.php"); ?> こんな感じで組み込むことって可能ですか? 外部ファイルなしで普通に1つにして読みこませると大丈夫なのですが、上記のように外部ファイルとして読み込ませると、表示されません。 <html>タグの外って、基本的にだめなんですか? 教えてください。

    • ベストアンサー
    • PHP
  • 管理しているサイトの読み込みが遅いです。

    はじめまして 会社での仕事であるサイトを管理しています。 コンテンツのファイルは全てPHP+ごく一部にデータベースを使用しています。 作りとしてはメイン記事+includeでヘッダ・フッタ・サイドバー・広告(ランダム表示)・関連記事一覧など様々な外部ファイルを読み込んでいます。 そういった構造が関係しているのか画像ファイルを大量にて使用しているわけではないのに、ページの読み込みに少し時間がかかります。 やはりincludeなど多用すると読み込み時間にも影響を与えてくるものなのでしょうか? また、この状況を改善するためにシステムを変更する事もかんがえています。 SQLやXHTMLなど色々なシステム(?)がある事を知りましたが、大量のコンテンツの管理・作成をする上でどういったものを使用するのがよいでしょうか? ちなみにコンテンツは800ページ程、月間アクセスは150~300万PVほどです。

  • ランダムリンク(ランダム表示)の作成について

    初めて質問させていただきます。 自分のサイトにランダムリンク(ランダム表示)を設置しようと思いいろいろと調べてみたものの、 自分が必要としているものが見つかりませんでした。 以下が自分の希望するランダムリンクの形です。 (1)サイトのソース表示を見た場合、<a href="○○">××</a>のようなリンク形式で表示したい。 ⇒<script type ~></script> というふうに表示されないもの (2)テキストファイルなど、外部にリンク先のタグを挿入しておき、その中からランダムに表示されるようにしたい。 (3)phpで作成されたフリー配布されているものを使用させていただいたところ、うまく動かすことができませんでした。 ですので、php以外の形式のランダムリンクを希望いたします。 これらの条件にあてはまるランダムリンクの仕組み、サンプル、方法などをご存知の方はいらっしゃいませんでしょうか?? お手数ですが、よろしくお願いいたします。

    • 締切済み
    • CGI
  • includeでのローカルファイルの呼び出しについて

    いろいろやってみて原因が全くわからなかったので、わかる方はご回答願えますと幸いです。 PHPでランダムで文字を表示するスクリプトを作り、下記のように設置して問題なく表示出来ていました。(右の数字はパーミッションです) /home(755) │└index.php(644) /random(755)  ├random.php(644)  └random.txt(606) random.phpでrondom.txt内のデータをランダムに取り出して表示させ、その内容をindex.phpに <? include("http://xxxxx.xxx/random/random.php");?> と呼び出しを行っていました。 しかしサーバー管理者に外部ファイルの呼び出しは高負荷がかかるのでローカルからの呼び出しに変更してほしいと連絡を受け、 <? include("./random/random.php");?> のように修正を行ったところ、以下のようなエラー文が吐き出されてしまいました。 Warning: file(random.txt) [function.file]: failed to open stream: No such file or directory in /xxxxxxxx/random/random.php on line 2 このエラーの回避方法についてご存じの方がいたらご教授願えればと思います。

    • ベストアンサー
    • PHP
  • PHPプログラムの実行

    だいぶ古いバージョンですが、CDロムからXAMPP(xampp-win32-1.6.4-installer.exe)をインストールし、簡単なPHPスクリプトを書いて実行しましたが、HTML で表記したヘッダー部分以外は、ブラウザ画面に何も現れません。 スクリプトは次のようなもので、XAMPPのhtdocsフォルダー にsample.html としてセーブしてあります。 <html> <head> <title> sample of PHP program </title> </head> <body> <h1> sample </h1> <?php echo "Welcome"; ?> </body> Apache サーバーはちゃんと走ってます。なぜ何も表示されないのでしょうか? 何かコンフィグレーションファイルのようなものを編集する必要があるのでしょうか?詳しい方、どうぞ教えてください。お願いします。

    • ベストアンサー
    • PHP
  • 自社サイトの更新で困ったこと

    自社サイトの更新について質問があり投稿させていただきました。 WEBの他にDTPの技術もあるので、そちらの仕事もさせていただいております。 今回、お聞きしたい点は、 現在勤務している会社は、今まで自社サイトの更新は、テキストレベルの更新や、新規ボタンを挿入など小さい範囲では自社で「Frontpage」を使用して更新されてきたそうなのですが、新しい製品の発売に伴い、その紹介のページを私が新しく組み込むことになり、元のデザインを損なわないまま、ページをプリントスクリーンでコピーして、Fireworksで作図のデザインをしたり、グラフィックのデザインをしています。 後は、それをどうやってサーバにアップするか戸惑っています。 会社にあるのはInternet explorerのマークがついた「htm」ファイルと、各イメージが入ったフォルダはそろっています。 この Internet explorerのマークがついた「htm」ファイル をFrontpageで開いて更新をされていたのですが、私はデザインをFireworksでしたのでこれをスライスしてFrontpageに流しこめばよいのでしょうか。(画像の挿入などで) ちなみにFrontpageは触ったことがありません。 (社員の方に聞くとWORDの感覚なのですぐできるとのことでした) (私のレベルは、以前の制作会社では、デザインまではしており、 コーダーがいたので、分業でWEBの仕事をしていました。) もしくは、会社にあるその「htm」ファイルをDreamweaverで開く方法というものがあるのでしょうか。 試して見ましたが、へんなタグが出てきて、うまくいきませんでした。(きれいに表示されませんでした) 今後、結構自社の製品が新しくなるたびに私がデザインしていくのですが、この会社でのベストな更新の方法は、やはりFrontpageでしょうか。 友人に尋ねたところ、普通は、 自社サイトをつくった制作会社からデータを引き上げて(買い取る)、それを更新していくのがベストだと 言われました。業者に構築方法も聞くように言われました。 特にCGIなどはありませんが・・・。 私も、業者と接触できるのがいちばんいいとは思っているのですが、 今の会社は、デザイナー(私)を入れるのが初めてと言うこともあり、 皆で話し合いながら進めています。 私は、WEBはまだ新人なので、質問しながらでも許される範囲内でおりますので こちらでアドバイスいただけたらぜひ参考にさせていただきたいと思っております。 よろしくお願いいたします。 会社のPCはWINで、CS3全部揃っており、私はDreamweaver以外は ほぼ問題なく(イラレ、PS,FW)使用できます。

  • PHPの基本について

    2点の質問があります。 一点目は 他の外部ファイルを読み込みする場合に下記3種類がありますが(もしかしたら他にもあるのでしょうか?)どの方法がベストでしょうか?いろいろ調べるとエラー処理の問題だけのようですが、PHPは比較的初心者なのでよくわかりません。 <?php include("http://ooxx.oo/"); ?> <?php require("http://ooxx.oo"); ?> <?php readfile("http://ooxx.oo"); ?> 2点目は PHPでWEBサイト構築する場合とHTML場合にSEO対策上、どうでしょうか?(ここでいうPHPファイルはHTMLファイルをPHP拡張子で保存しただけで、静的アドレスにはなるので・・・?) よろしくお願いします。

    • 締切済み
    • PHP
  • 時間指定でランダムにhtmファイルを表示したい

    perlカテゴリでも質問させて頂いたのですがちょっと無理があったようですので改めてこちらに質問させて頂きます。 画像のランダムスクリプトと似たかんじでhtmファイルを差し替えるスクリプトって作ることは可能でしょうか? あるフォルダに多数のhtmファイルを格納しておけばランダムに指定した間隔時間でそのファイルが表示されるといった仕様にしようと改造を試みたのですがどうもうまくいきません。 どなたかPerl言語に精通されている方がいらっしゃいましたらそのスクリプト例をお教え頂きたいのです。 お手数をお掛けします どうぞよろしくお願い致します。

    • ベストアンサー
    • CGI