9.応用編(3):時間帯によってつぶやく内容を変える

今回はbotが実行された時間帯によって読みに行くつぶやきのデータファイルを変える方法について説明します。
起きている時のセリフと寝ている時のセリフを別のファイルで保存して時間帯で切り替えれば、キャラの一日の生活を表現できたりしておもしろいです。


bot.phpbotの動作入力スペースに記入します。


if(date("G") > 6 && date("G") < 22 ){
$response = $eb->postRandom("data.txt");
}elseif(rand(0,5) === 0){
$response = $eb->postRandom("data_night.txt");
}

↑は実際のbotに使っているスクリプトです。

『6時より後(7時から)、22時前までに実行された場合はdata.txtの内容をつぶやく』
『それ以外の時間帯(22〜翌6時)は、実行されたときに6回に1回の確率でdata_night.txtの内容をつぶやく』

こんな感じの内容です。


bot.phpの下の方に書かれている幾つか実行パターンのサンプルが書かれていると思います。

その中の
bot.phpを実行したときに、午前だったらgozen.txtのデータを、午後だったらgogo.txtのデータを使う』
bot.phpを実行したときに、2月14日のみvalentine.txtのデータを、それ以外はdata.txtのデータを使う』
bot.phpを実行したときに、5回に1回ランダムに実行される』
の応用です。


使用しているのはdate関数、rand関数。
if〜 elseif〜の条件分岐の文を使い、date("G") > 6 && date("G") < 22 で時間帯指定。(条件分岐、dare関数、比較演算子)
rand(0,5) === 0 は実行時に0〜5までの6個の値がランダムで出力され、それが0だった場合のみその先の分が実行されるという構文。1/6の確率でdata_night.txtの内容がつぶやかれます。
セリフは昼間用のdata.txtと夜間用のdata_night.txtで分けました。