ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

PHP/CSS/PERL/DB/SERVERコミュの[PHP]mb_convert_kana関数

  • mixiチェック
  • このエントリーをはてなブックマークに追加
ど素人のような失策を運用中のシステムに適応。

[概要]
登録済みのデータのフリガナを全て半角に置換する。

[部分script]
// 全角カタカナが含まれる場合処理する
if (mb_ereg("([アーン]{1,})", $ll["st_kana"],$array)){

// フリガナを半角にしちゃう
$ll["st_kana"] = mb_convert_kana(initmultibyte_to_variable($ll["st_kana"]), "kh", "Shift_JIS");

// 半角化でUpdate
$update = "update z_student set st_kana = '".$ll["st_kana"]."' where st_num = '".$ll["st_num"]."' limit 1 ";

// クエリ送信関数へ
strd_query($update);
}

[問題]
半角カタカナの「ソ」がらみがばけまくりんぐw
運用中のシステムに適応してしまったので手動修正しました。

あーだりー。
正式にはどうするんだろか、addslashesで化け抜きしといて適応時にstripslashesか。

むひー

コメント(2)

機種依存文字対策も必要だった。
�盒兇覆鼻�
mb_convert_kana()通すと?になる時があった。
mb_internal_encordingsの設定を、SJIS-winに変更して対処。
指定しない場合は、mb_convert_kana("","","SJIS-win")で対処。

ウホ!
ご高名ではない変体プログラマーの言うところ、
データベース上では\などのエスケープシーケンスは保存せずに、
出力する際にaddslashesするらしいのだが、
shift-JISでDBにそんな文字コードを格納した時点で、
どえらい事になってるように見えるが、
そのまま出そうとするといかなる手段を持ってしても化けるので、
addslashesをかけて検証したらすぐわかるけど前向きな気持ちが
沸いてこないので終了。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

PHP/CSS/PERL/DB/SERVER 更新情報

PHP/CSS/PERL/DB/SERVERのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング