IT 一覧 (1/1)

MySQLでの異体字対応検索

  • IT

天理教教会地図検索で異字体も含めて検索できるよう対応した記事を書きましたが、技術的な説明をしたいと思います。

現在利用している環境は、文字コードはUTF-8、データベースはMySQL 5.7、言語はPHP7.4.15です。

異体字の処理は、Unicodeの異体字セレクタや、MySQLのCOLLATEなどの機能でなんとかなりそうですが、なんともならないようです。
異体字の一覧があれば、力技でなんとかなりそうなので調べたところ、お~まち様の異体字も含めて検索したい デモ版のソースを流用させてもらうことにしました。
※お~まち様、ありがとうございます。

次に、MySQLでの検索処理ですが、LIKEやINで無く、拡張正規表現のREGEXPを使います。
例えば、高崎ですと、
SELECT * FROM table WHERE name REGEXP '[高髙][崎㟢﨑?嵜埼碕]'
で良いかと思いきや、マルチバイトの日本語には対応していないので、
SELECT * FROM table WHERE name REGEXP '(高|髙)(崎|㟢|﨑|?|嵜|埼|碕)'
と文字列として処理すると、望みの結果がでます。(この記事では石へんの﨑が文字化けしています...)
※日本語でも使えるユーザー定義関数mregexpもありますが、レンタルサーバではインストールできなさそうなので未確認です。

PHPの関数にしてあるので、よかったらお使いください。
itaiji.php
※PHP7.4.0以上で使えるmb_str_splitを利用しているので、ご注意ください。

「MySQLでの異体字対応検索」の続きを読む

当ページでは、Let's Encryptの無料のサーバ証明書を手作業で設定していることは、以前の記事で書きましたが、2017年10月17日よりさくらのレンタルサーバ/マネージドサーバのコントロールパネル上から簡単に設定できるようになり、証明書の期限切れ前に勝手に更新までしてくれるそうです!
プレスリリース
さくらのレンタルサーバ/マネージドサーバ Let's Encrypt

手作業で、期限が切れる前に毎回作業するのは面倒くさいので、早速、コントロールパネル上か設定してみました。

「さくらのレンタルサーバの設定によるLet's Encryptのサーバ証明書」の続きを読む

Googleのウェブマスター向け公式ブログで、HTTPSページが優先的にインデックスに登録されるようになりますという記事が最近ありました。
HTTPSというと、金銭や個人情報をやりとりする場合など、重要な情報をやりとりする際に使うものとの感覚から、当ページでは関係ないと思っていました。
しかし、このページで利用しているさくらレンタルサーバのSNI対応や、Let's Encryptによる無料のサーバ証明書の配布により、このたび重い腰をあげてHTTPS対応を行いました。
https://msnr.net/http://msnr.netのどちらでも使うことができます。

「Let's Encryptで、さくらレンタルサーバをHTTPS対応」の続きを読む

このページの上部へ

プロフィール

名前:いと
性別:♂
mail: msnr@msnr.net

一言:まぁそれなりに、だらだら生きている、自転車好きの元プログラマです。会社勤めを辞め、 修養科を無事に修了することができ、 道専務をさせていただくことになりました。
2007年4月より大教会で青年づとめをさせていただき、2011年1月より自教会に戻りました。
させて頂くことを手探りな状態ですが、勇んでつとめさせていただきます。

サイト内検索

最近のピクチャ

Powered by Movable Type 7.7.1