- ベストアンサー
日本語の変換
すみません。phpで質問です。 ユーザーから受け取った文字列(日本語漢字、ひらがな、かたかな含む)をローマ字とうに変換することはできますでしょうか? 受け取った文字列をsqliteのテーブル名にしたいのですが、日本語は使いづらいみたいなので、ローマ字に変換したいです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>管理者がユーザーによってテーブルを作られるときに自動でテーブル名を決める関数を作っておく が思い付いたのですが、 そもそも、ユーザーにテーブルを作らせてはダメです!。 やるのはデータ!! なので、「キーバリュー」式がいいかと思います。 key:String value:String の2つのカラムを持つテーブルを作成。 「あなたが言うテーブル名」を「key」として、 これを格納させ、探すときは select value from <このテーブル名> where key = 「あなたが言うテーブル名」; で抽出。 これで、どんなものでも自由に格納できますよね? それでは、だめでしょうか? (なお、sqliteはあまりわかりませんが、sqlで書いています。 おそらくはほとんど同じだと思いますが。違ったら 概念だけ吸収してもらえたらと思います)
その他の回答 (3)
- ballville
- ベストアンサー率47% (233/487)
DB関係はほかに詳しい方がいらっしゃるようなので、ローマ字変換についてだけ書きます。 漢字かな交じりの日本語をローマ字化するには、kakasiというOSSを使うのが簡単だと思います。 PHPでの実装例はちょっと古いですが https://www.pahoo.org/e-soul/webtech/php03/php03-01-01.shtm がわかりやすいです。
- AsarKingChang
- ベストアンサー率46% (3467/7474)
最終的には難しいでしょうね 例えば、「辛い」これなんて読みます? 「つらい」?、「からい?」 また、「臭い」これも 「におい」?、「くさい」? と、そもそもが、1対1で変換不可能なのが、「漢字」なのでね~ 普通に、英語的なテーブル名やカラム名のほうがいいと 思いますよ。
- t_ohta
- ベストアンサー率38% (5241/13712)
Yahoo!デベロッパーネットワークの日本語形態素解析APIなどを使って漢字をひらがなかカタカナに変換した上で、一文字ずつローマ字に変換すればできるでしょう。 専用の関数などは無いので、全部自分で作る必要があります。 ネットで検索するとかなローマ字変換などはソースが見つかると思います。
補足
なるほど。 音読み訓読みで全然違ってくるんですね。 であるとすればもうひとつ管理者がユーザーによってテーブルを作られるときに自動でテーブル名を決める関数を作っておく が思い付いたのですが、 if(テーブルが作られたら){ ここの処理がわからないので教えたください。 }