2005-10-16 Sun

Php-Stats|UTF-8 で使う

サイト再開にあたって、アクセス解析を「Power Phlogger」から「Php-Stats」に変更しました。とあるサイトの構築をお手伝いしていることもあり、いろんな解析画面を見ておいた方がいいと思ったのと、なにより見やすそうなのが決め手になりました。

インストールは「[ワ] PHP-STATSちょこっと解説」を参考にさせていただきました。インストール方法以外にも解説が充実していますので、これから導入しようという方は必見のサイトです。僕も大変お世話になりました。ありがとうございます。ちなみにこの方もNucleusですね。サイトもリニューアルされたようです。かっこいい。おもしろい情報が結構あって、記事書いてる途中なのに読みふけってしまいました。

で、僕はNucleusをUTF-8で運用してます。よくわからないのですが、Php-Statsは日本語で使用するときはEUC-JPが大前提のようです。でも、インストール成功すれば、基本機能は問題なく使えます。アクセス数も少ないのと、[旧] Heartfieldからのアクセスばかりで気がつかなかったのですが、検索語句が文字化けしていました。ということで、その対策メモ。

まず確認したのですが、検索語句が表示されるページで文字コードをUTF-8に変換すると、普通に検索文字が表示されました。ということは、検索語句をEUC-JPに変換するか、Php-StatsをUTF-8で動かせばいいのだと判断しました。前者の方が簡単に思えたのですが、どこでその作業をしているのか見当もつきません。ということで、Php-StatsをUTF-8で運用することにしました。

といっても、中のことはさっぱりわからないので、Php-Statsのlang内にある、日本語かファイルを開いて、文字コードをUTF-8に変換しただけです。すると、ページ全体が文字化けしましたが、文字コードをUTF-8にして読み込み直すと無事表示されました。もちろん検索語句もばっちり表示されています。以上です。

…のはずだったのですが、思わぬ文字化けが発生。Php-Statsは、見られたページのタイトルを表示してくれるのですが、今度はそっちが文字化け。ソースを見ると「urldecode_euc」なる関数が使われています。PHPのマニュアルにも使い方が書いていないのでわからないのですが、ようはEUC-JPでエンコードされた文字列をデコードしているようです。ですが「urldecode_utf」なんて関数も存在しないので「mb_convert_encoding」を使うことにしました。一言で書いてますが、相当試行錯誤してます(笑)。

修正したファイルは以下の4つです。

  • details.inc.php
  • pages.inc.php
  • percorsi.inc.php
  • time_pages.inc.php

例えば「details.inc.php」には以下のような個所があります。

$details_titlePage=urldecode_euc(stripslashes(trim($details_titlePage)));

これ全体を「mb_convert_encoding」で囲ってやります。

$details_titlePage=mb_convert_encoding(urldecode_euc(stripslashes(trim($details_titlePage))), "UTF-8", "EUC-JP");

後ろにEUC-JPをUTF-8に変換しろ、というのをつけたら完成です。他のファイルも「euc」で検索すると該当個所が出てくるので、同じように修正します。1ヶ所か2ヶ所なので、あっちゅう間です。以上でPhp-StatsはUTF-8で使用できる様になったはずです。今のところは問題ないので、大丈夫だと思います。

あ、あと/templates/template.phpとtracking.phpのどこかに

<META NAME='ROBOTS' CONTENT='NONE'>

という個所がありますので、直後に文字コードを指定します。以下のような感じ。

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

これで文字化けはほぼ無くなると思います。

Php-Statsは任意のクリック数やダウンロード数を測定する機能もある、かなり強力な解析ツールです。訪問者経路検索なんかあって、見に来てくれた人がどのようにサイトを巡回しているかわかっておもしろいです。商用利用はNGですが、個人の場合は無料で利用でできますので、PHPとMySqlが使えるサーバーを使用している人は、一度試されたはいかがでしょう。Nucleusユーザーならほぼ確実に動かせますね。猛烈に勧めです。

2005-10-16 Sun / Category - Web

このページの先頭に戻る

Copyright 2005 - Heartfield