すべての漢字を取り出す正規表現<UTF-8

2009年5月15日 [ TIPS, TIPS - その他 ]

GoogleのWebMasterを見ていて気が付いたのだが、サプリインデックスの「水溶性食物繊維」や「不溶性食物繊維」がNOT FOUNDできちんとインデックスされていない。
なぜ!?

実はサプリメントの成分はいままでデータベース内にファイル名という項目を作り、動的アドレスを静的アドレスに変更していた。
でも、もしかして…と思い、Wikiと同様に静的アドレスを日本語のURLエンコードで
http://www.supplement.ne.jp/db/不溶性食物繊維
などのように変更してみたのだが…。

そのときの.htaccessのmod_writeの記述は(一部)
RewriteEngine on
RewriteRule ^([ぁぁ-んぁ-ヶ亜-黑A-Za-z0-9]*)$ hoge.php?name=$1 [L]
つまり、すべてのマルチバイト文字にマッチングするようにしていた
(シングルバイト文字に非マッチングしている理由は、MySQLの脆弱性を回避するため)。
この、「亜-黑」はすべての漢字にマッチングすると信じ込んでいたのだが…。
実はこれはSJISのみの場合だった。
なんとも、初歩的なミスであるが、UTF-8では、これではすべての漢字にマッチングしない。
てことで、いろいろ調べた結果、UTF-8でのマッチングは
一-龠
が、正しいらしい。
う~ん、独学・自己流だといろいろとたいへんだわさ。

ひらがな・カタカナのマッチングがいまいち自信がないのだけど…。とりあえず、今のところ不具合はでていないようなので放置。本当は、
ぁ-んァ-ヴー
こんな風に書くのだろうか?

※ちなみに、UTF-8ではマルチバイト文字などという概念はないので、全角か半角か…ということなのだが、詳しくは割愛。このへんあたりが参考になるかな?
PHPにおけるUnicode文字列の正規化

SmartyでGoogleAnalyticsを使うときの注意点

2009年4月22日 [ TIPS, TIPS - PHP(MySQL) ]

アクセス解析のスクリプトを自作して1年ほど使っていたのだが、…どうしても不満なので、やっぱり、GoogleAnalyticsに回帰(笑)。
Cookieで自己アクセスを除外する機能なんかも追加されたみたいなので(もともとあったのかな?)、早速再登録。
Smartyのテンプレートに記載したところ…、エラー!!!
GoogleAnalyticsのソースには『{}』が含まれているので、どうもご認識しているようだ。

ということで、マニュアルを調査。…、そういや、Smartyではメタ文字のエスケープみたいなものは
{literal}で囲む
んだっけ。Smartyってすごく便利なんだけど、一度作るとほとんどHTML部分以外はいじらないので、すっかり忘れていた。
ということで、めでたく解決。

※こんな感じで記載することになります
{literal}
…(GoogleAnalyticsのコード)
{/literal}

WordPress2.7ベータ2

2008年11月10日 [ TIPS, WordPress ]

WordPress2.7ベータ2で運用中。
ダッシュボードが大幅変更になっています。
使用感などは随時。
ちなみに、まだIE系ではダッシュボードの表示が一部乱れます。

2.7 ベータ 2 日本語版

Next »