Apacheアクセスログと私(集計結果を棒グラフで表示)

そのうちと言いつつ,すぐいじる私.集計結果表示部を変えてみました.

print "<h4>リクエストファイル集計</h4>\n<table>\n"
#ページをリクエストの多い順に並べ替えて表示
#同数ならファイルの名前の順に表示
count = count.to_a.sort{|a, b| (b[1] <=> a[1]) * 2 + (a[0] <=> b[0]) }
maxcount = count[0][1] #最大リクエスト数を保持
count.each{|key, value|
  if %r|^/diary/.+| =~ key #もしリクエストファイルがdiary内だったら
    key = URI.decode(key) #キーをURIデコード
  end
  graphlen = 400 * value / maxcount #棒グラフの長さを設定
  print "<tr><td>#{key}</td><td>#{value.to_s}回</td>\n"
  print "<td><img src=\"graph.gif\" width=\"#{graphlen}\" height=\"10\"></td></tr>\n"
}
print "</table>\n"

テーブルに仕立てて,棒グラフを表示するようにしただけですね.graph.gifというのは,1×10の大きさのイメージで,青1色で塗ってあります.

途中,URIエンコードをかましてありますが,これは,日記のページのカテゴリをクリックすると2バイト文字がURIにセットされるため.実は,表示のところよりも,これをデコードする方法が分からなくて時間を食っていました.

最初,いきなりエンコードしようとしたら,並べ替えがうまくいかなくなり,次にNKFをかましたら,ちっとも変換されていなかったり.NKFとURIエンコードは話が違ったんだっけとおぼろげに思い出して,やっとかっと作りました.

表示結果.おお!それっぽいべや.

日時: 2005年11月 5日 | PC/Web > Ruby |

コメントを投稿

(空欄でもかまいません)

(メールアドレスは管理人に通知されますが,Web上には表示されません)

Powered by Movable Type