Ruby で CGI > 出力方法 > 問題
アクセス毎に違うメッセージを表示する CGI を作成してみてください。html である必要はありません。いろいろ工夫してみてください。
♪
a = ["にんじん","うさぎ"]
とするなら、a[0]
は"にんじん"
、a[1]
は"うさぎ"
a
を配列とするとき、a.length
rand(7)
♪
おそらく最もシンプルな答えは、
#!/usr/local/bin/ruby -Ks
messe = ["こんにちは","ごはんですよ","ウサギぴょんぴょん"]
print <<HOGEHOGE
Content-Disposition: filename="omikuji.txt"
Content-type: text/plain;charset=Shift_JIS
HOGEHOGE
puts messe[rand(3)]
しかし、これでは、メッセージの種類を増やしたときに、rand(3) の 3 をメッセージの個数に合わせなければなりません。これを自動でやれれば完成。 配列の要素の数を数えるのは、.length だから、
#!/usr/local/bin/ruby -Ks
messe = ["こんにちは","ごはんですよ","ウサギぴょんぴょん"]
print <<HOGEHOGE
Content-Disposition: filename="omikuji.txt"
Content-type: text/plain;charset=Shift_JIS
HOGEHOGE
puts messe[rand(messe.length)]
さらに、メッセージを書きやすくする工夫もできます。
#!/usr/local/bin/ruby -Ks
messe = <<EOS
こんにちは
ごはんですよ
ウサギぴょんぴょん
EOS
messe = messe.split(/\n/)
print <<EOS
Content-Disposition: filename="omikuji.txt"
Content-type: text/plain;charset=Shift_JIS
EOS
puts messe[rand(messe.length)]
以上です。