SQLの窓

2010年06月07日


Ruby : 日本語の正規表現はバイナリで

Ruby 内で、日本語の正規表現を正しく動作させる為に、先頭に
#!/usr/local/bin/ruby -Ke

というような記述をすると良いと・・・言ってるのをみかけましたが、
対象文字列が SHIFT_JIS で書かれていて、ソースが EUC-JP ではどう
にもならなかったので、以下のように普通にバイナリ指定しました。

このほうが確実のような気がします。
というか、Ruby は飛び道具という認識しか無いので動作する事が
大前提で、WEB アプリケーションは他の言語にまかせたほうがいい
と思います。

以下は、Seesaa の投稿処理です。
# **********************************************************
# Seesaa 処理関数
# $agent はグローバル変数
# **********************************************************
def seesaaAction(blog_id,blog_nm,opt) 


	# ブログ選択
	page = $agent.get($seesaa_select_blog + blog_id)
	# アクセス解析デフォルトページ( ページ別 )
	page = $agent.get($seesaa_access_default)

	# 合計の 訪問者数 と ページビュー を取得する正規表現( m は "." が改行にマッチ )
	/log\-total\-text.+log\-total\-num">.+?>(.+?)<.+log\-total\-num">.+?>(.+?)</m =~ page.body
	# Ruby 側確認用表示
	$ucnt = $1
	$vcnt = $2

	if opt == '1' then
		# 実際のアクセス数の計算用
		page = $agent.get($seesaa_access_os)
		# SHIFT_JIS で不明の先頭コードである \x95 を処理
		/log\-total\-num">(.+?)<.+?\x95.+?align="right".+?nbsp;(.+?)</m =~ page.body

		$realcnt = ($1.to_i-$2.to_i).to_s
	else
		$realcnt = 0.to_s
	end

	print blog_nm + "   " +  $ucnt + "/" + $vcnt + "<br>\n"
	print "realaccess : " +  $realcnt + "<br>\n"

	# DB 更新用 php 呼び出し
	$agent.get($seesaa_dbupdate+blog_id+'&ucnt='+$ucnt+'&vcnt='+$vcnt+'&realcnt='+$realcnt)


end

# **********************************************************
# Seesaa 定数
# **********************************************************
$seesaa_select_blog	= "http://blog.seesaa.jp/pages/my/blog/home/?blog_id="
$seesaa_access_default	= "http://blog.seesaa.jp/pages/my/blog/access_log/report/index?log_type=file"
$seesaa_access_os	= "http://blog.seesaa.jp/pages/my/blog/access_log/report/index?log_type=os"
$seesaa_dbupdate	= "http://.../seesaa_create_log.php?blog_id="


関連する記事

Ruby+Mechanize : Seesaaアクセス解析情報


タグ:トラブル
posted by lightbox at 2010-06-07 20:27 | Ruby | このブログの読者になる | 更新情報をチェックする
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり