ホームページを訪れた人にちょっとした「あいさつ」などのメッセージを表示させたいときがあります。 これが固定されたメッセージ文ならHTMLに書き込んでおくだけで済みます。 しかしもっといろんなパターンのメッセージを表示できたら、もしかしたら訪れた人たちを飽きさせないホームページにできるかも知れません。 そこでバラエティに富んだメッセージを用意しておき、日替わりで(あるいはランダムに)それを表示させるスクリプトを作ってみました。
ホームページを訪れた人にちょっとした「あいさつ」などのメッセージを表示させたいときがあります。 これが固定されたメッセージ文ならHTMLに書き込んでおくだけで済みます。
しかしもっといろんなパターンのメッセージを表示できたら、もしかしたら訪れた人たちを飽きさせないホームページにできるかも知れません。
そこでバラエティに富んだメッセージを用意しておき、日替わりで(あるいはランダムに)それを表示させるスクリプトを作ってみました。
スクリプト全体をPHPコードで書いています。依存モジュール等はございません。 Ver1.1(最新版) Ver1.0 試作版 代替ページ デモ用呼び出しページ データファイル(空) データファイル(百人一首) 呼び出しページが無い場合用に「代替ページ」を用意しています。 デモで使用している呼び出しページもダウンロードできるようにしました。(Ver1.1以降で動作) その他、1月1日〜12月31日まで日付設定を書いた空のデータファイルと、デモ#02で使用している百人一首のデータファイルをダウンロードできるようにしました。
スクリプト全体をPHPコードで書いています。依存モジュール等はございません。
呼び出しページが無い場合用に「代替ページ」を用意しています。
デモで使用している呼び出しページもダウンロードできるようにしました。(Ver1.1以降で動作)
その他、1月1日〜12月31日まで日付設定を書いた空のデータファイルと、デモ#02で使用している百人一首のデータファイルをダウンロードできるようにしました。
最新版をダウンロードしてファイルを解凍。(内容:PHPファイル1つ。これが日替わりスクリプト) 日替わりスクリプトをエディタ(メモ帳など)で開き、上部にある設定を行います。(※1) データファイル(msg.txt)を用意し、これにメッセージ文設定を行います。(※2) PHPのページに、日替わりスクリプトを呼び出す為の記述を書きます。(※3) ※1)設定で最低限行うべき項目は「デフォルトメッセージ」設定になります。 メッセージが取得できない場合にはこのデフォルトメッセージが表示されるので、ここにはいつ表示させてもいいような内容のメッセージを書くといいと思います。 ※2)データファイルのメッセージ設定は決まった書式で書く必要があるので、次項「データファイル」を参照してください。 ※3)既存のPHPページがあって、そこに日替わりスクリプト呼び出しの記述を加えます。呼び出しの記述は「呼び出しの記述」の項を参照してください。 既存ページが無い場合は代替ページをダウンロードに用意しています。
※1)設定で最低限行うべき項目は「デフォルトメッセージ」設定になります。 メッセージが取得できない場合にはこのデフォルトメッセージが表示されるので、ここにはいつ表示させてもいいような内容のメッセージを書くといいと思います。
※2)データファイルのメッセージ設定は決まった書式で書く必要があるので、次項「データファイル」を参照してください。
※3)既存のPHPページがあって、そこに日替わりスクリプト呼び出しの記述を加えます。呼び出しの記述は「呼び出しの記述」の項を参照してください。 既存ページが無い場合は代替ページをダウンロードに用意しています。
【準備】 まずデータファイルを新規作成します。(ファイル名は初期設定でmsg.txt) このファイルに、1つのメッセージを1行で書きます。 メッセージの数だけ行を追記していきます。 【書式】 [表示させる日付] [区切り文字] [メッセージ文] の並びで1行とします。 a) [表示させる日付] 「2013/1/1」「2013-1-1」「2013.1.1」年月日の区切りはどれを使ってもいいです。見やすいものを使ってください。 また、「2013/01/01」のように前ゼロ記法にも対応しています。 ワイルドカード文字"*"を使えば、より幅広くマッチさせることができます。 「2013-1-*」2013年1月じゅうマッチします。 「2013-*-1」2013年の毎月1日にマッチします。 「2013-*-*」2013年じゅうマッチします。 「*-1-1」毎年1月1日にマッチします。 「*-*-*」常にマッチします。 b) [区切り文字] ","(カンマ)の他、":"(コロン)、" "(半角スペース)その他タブ文字を使用できます。読みやすいものを使ってください。 c) [メッセージ文] メッセージ文途中で改行させたい場合は"<br>"を使用できます。 「<q>〜</q>」で囲んだ部分は自動的にGoogleへリンクを張ります。 メッセージ文以外にも<img src="/images/foo.gif">形式で書くことで画像の切替表示ができます。 メッセージ文中には置換キーワードとして %TODAY% %YEAR% %MONTH% %DAY% %HOUR% %NOW% %TODAY_WA% %NOW_WA% を使用することができます。 これらはそれぞれ「年月日」「年」「月」「日にち」「時間」「時分」「年月日(和文字入り)」「時分(和文字入り)」に置き換えられます。 【記述例】 [msg.txt] 2000-7-19,2000年7月19日に二千円札が発行されたんだってさ。 *-1-1,%YEAR%年、明けましておめでとうございます。 *-*-1,%MONTH%になりました。今月もがんばりましょう! 2013-*-*,今年の私の目標は「○○」を覚えること! *-6-10,<img src="/images/foo.gif">今日の一枚 *-*-*,<img src="/images/foo_%HOUR%.gif"> [説明] 過去日付のメッセージの場合、設定で$msg_typeを1以外にすればマッチする可能性があります。 これは過去に起こった出来事などをランダムで表示させる使い方ができます。 画像を日替わりで切り替えるには日付指定と、表示させたい画像の<img>タグ記述を書き並べていきます。 画像を時間帯別に用意してファイル名に時間帯を入れておけば%HOUR%キーワードを使うことで時間帯で表示切替できます。
まずデータファイルを新規作成します。(ファイル名は初期設定でmsg.txt)
このファイルに、1つのメッセージを1行で書きます。 メッセージの数だけ行を追記していきます。
[表示させる日付] [区切り文字] [メッセージ文] の並びで1行とします。
a) [表示させる日付] 「2013/1/1」「2013-1-1」「2013.1.1」年月日の区切りはどれを使ってもいいです。見やすいものを使ってください。 また、「2013/01/01」のように前ゼロ記法にも対応しています。 ワイルドカード文字"*"を使えば、より幅広くマッチさせることができます。 「2013-1-*」2013年1月じゅうマッチします。 「2013-*-1」2013年の毎月1日にマッチします。 「2013-*-*」2013年じゅうマッチします。 「*-1-1」毎年1月1日にマッチします。 「*-*-*」常にマッチします。 b) [区切り文字] ","(カンマ)の他、":"(コロン)、" "(半角スペース)その他タブ文字を使用できます。読みやすいものを使ってください。 c) [メッセージ文] メッセージ文途中で改行させたい場合は"<br>"を使用できます。 「<q>〜</q>」で囲んだ部分は自動的にGoogleへリンクを張ります。 メッセージ文以外にも<img src="/images/foo.gif">形式で書くことで画像の切替表示ができます。 メッセージ文中には置換キーワードとして %TODAY% %YEAR% %MONTH% %DAY% %HOUR% %NOW% %TODAY_WA% %NOW_WA% を使用することができます。 これらはそれぞれ「年月日」「年」「月」「日にち」「時間」「時分」「年月日(和文字入り)」「時分(和文字入り)」に置き換えられます。
「2013/1/1」「2013-1-1」「2013.1.1」年月日の区切りはどれを使ってもいいです。見やすいものを使ってください。
また、「2013/01/01」のように前ゼロ記法にも対応しています。
ワイルドカード文字"*"を使えば、より幅広くマッチさせることができます。 「2013-1-*」2013年1月じゅうマッチします。 「2013-*-1」2013年の毎月1日にマッチします。 「2013-*-*」2013年じゅうマッチします。 「*-1-1」毎年1月1日にマッチします。 「*-*-*」常にマッチします。
","(カンマ)の他、":"(コロン)、" "(半角スペース)その他タブ文字を使用できます。読みやすいものを使ってください。
[説明] 過去日付のメッセージの場合、設定で$msg_typeを1以外にすればマッチする可能性があります。 これは過去に起こった出来事などをランダムで表示させる使い方ができます。 画像を日替わりで切り替えるには日付指定と、表示させたい画像の<img>タグ記述を書き並べていきます。 画像を時間帯別に用意してファイル名に時間帯を入れておけば%HOUR%キーワードを使うことで時間帯で表示切替できます。
過去日付のメッセージの場合、設定で$msg_typeを1以外にすればマッチする可能性があります。 これは過去に起こった出来事などをランダムで表示させる使い方ができます。
画像を日替わりで切り替えるには日付指定と、表示させたい画像の<img>タグ記述を書き並べていきます。
画像を時間帯別に用意してファイル名に時間帯を入れておけば%HOUR%キーワードを使うことで時間帯で表示切替できます。
日替わりスクリプトの設定およびデータファイルの準備が終わればあとはこれを呼び出すものが必要です。 直接日替わりスクリプトをページとして呼び出せば表示させることもできなくはないですが、通常はPHPのページが既にあって、そこから日替わりスクリプトを呼び出す形になります。 PHPページが無い場合は「ダウンロード」の項に代替ページを用意していますので使ってください。 [higawari_call.php] 呼び出しスクリプト <html> <head> </head> <body> <h1>呼び出しスクリプト</h1> <!-- 日替わりスクリプト呼び出し --> <?php include './higawari.php';?> </body> </html> 表示させたい位置でincludeを使って日替わりスクリプトを呼び出すだけです。 あるいはそのまま表示させずに、一旦変数に取得して加工したい場合もあります。 そんな場合は以下のようにできます。 [higawari_call.php] 呼び出しスクリプト <html> <head> </head> <body> <h1>呼び出しスクリプト</h1> <!-- 日替わりスクリプト呼び出し --> <?php ob_start(); include './higawari.php'; $catch = ob_get_contents(); // 出力を捕まえる ob_end_clean(); // 捕まえた出力を加工したり出力したり echo $catch; ?> </body> </html>
日替わりスクリプトの設定およびデータファイルの準備が終わればあとはこれを呼び出すものが必要です。
直接日替わりスクリプトをページとして呼び出せば表示させることもできなくはないですが、通常はPHPのページが既にあって、そこから日替わりスクリプトを呼び出す形になります。
PHPページが無い場合は「ダウンロード」の項に代替ページを用意していますので使ってください。
表示させたい位置でincludeを使って日替わりスクリプトを呼び出すだけです。
あるいはそのまま表示させずに、一旦変数に取得して加工したい場合もあります。 そんな場合は以下のようにできます。
【例1】 呼び出しスクリプト/日替わりスクリプト/データファイルを同じ場所に置く htdocs/ +- higawari_call.php +- higawari.php +- msg.txt 【例2】 データファイルを別階層に置く htdocs/ +- higawari_call.php +- higawari.php +- data/ +- msg.txt この場合、higawari.phpの設定は「$datfile = './data/msg.txt';」となります。 【例3】 呼び出しスクリプト以外を別階層に置く htdocs/ +- higawari_call.php +- higawari/ +- higawari.php +- msg.txt この場合、higawari_call.phpの呼び出し記述は「include './higawari/higawari.php';」、higawari.phpの設定は「$datfile = './higawari/msg.txt';」となります。
htdocs/ +- higawari_call.php +- higawari.php +- msg.txt
htdocs/ +- higawari_call.php +- higawari.php +- data/ +- msg.txt
この場合、higawari.phpの設定は「$datfile = './data/msg.txt';」となります。
htdocs/ +- higawari_call.php +- higawari/ +- higawari.php +- msg.txt
この場合、higawari_call.phpの呼び出し記述は「include './higawari/higawari.php';」、higawari.phpの設定は「$datfile = './higawari/msg.txt';」となります。
#01 - 機能紹介 #02 - 百人一首 #03 - データファイル無し #04 - 複数の日替わりメッセージ
2009/10/09 - 試作版 ・ブログで公開 2010/08/09 - Ver 1.0 ・Googleリンク張り機能追加 ・日付のワイルドカード指定を可能に ・ランダムでデフォルト表示させるイベント追加 ・縦表示と横表示をランダムで行う設定を追加 旧ページに掲載 2012/03/11 - Ver 1.1 ・イベント発生率を設定で変えられるように修正 ・正規表現の記述修正 ・メッセージ取得配列の初期化を追加 ・設置スクリプトの文字コードがSJIS以外のものにも対応 ・縦表示のズレを微修正 ・タイムゾーン設定を追加