• ベストアンサー

日本語の変換

すみません。phpで質問です。 ユーザーから受け取った文字列(日本語漢字、ひらがな、かたかな含む)をローマ字とうに変換することはできますでしょうか? 受け取った文字列をsqliteのテーブル名にしたいのですが、日本語は使いづらいみたいなので、ローマ字に変換したいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

>管理者がユーザーによってテーブルを作られるときに自動でテーブル名を決める関数を作っておく が思い付いたのですが、 そもそも、ユーザーにテーブルを作らせてはダメです!。 やるのはデータ!! なので、「キーバリュー」式がいいかと思います。 key:String value:String の2つのカラムを持つテーブルを作成。 「あなたが言うテーブル名」を「key」として、 これを格納させ、探すときは select value from <このテーブル名> where key = 「あなたが言うテーブル名」; で抽出。 これで、どんなものでも自由に格納できますよね? それでは、だめでしょうか? (なお、sqliteはあまりわかりませんが、sqlで書いています。  おそらくはほとんど同じだと思いますが。違ったら  概念だけ吸収してもらえたらと思います)

その他の回答 (3)

  • ballville
  • ベストアンサー率47% (233/487)
回答No.4

DB関係はほかに詳しい方がいらっしゃるようなので、ローマ字変換についてだけ書きます。 漢字かな交じりの日本語をローマ字化するには、kakasiというOSSを使うのが簡単だと思います。 PHPでの実装例はちょっと古いですが https://www.pahoo.org/e-soul/webtech/php03/php03-01-01.shtm がわかりやすいです。

回答No.2

最終的には難しいでしょうね 例えば、「辛い」これなんて読みます? 「つらい」?、「からい?」 また、「臭い」これも 「におい」?、「くさい」? と、そもそもが、1対1で変換不可能なのが、「漢字」なのでね~ 普通に、英語的なテーブル名やカラム名のほうがいいと 思いますよ。

dhtfyjh
質問者

補足

なるほど。 音読み訓読みで全然違ってくるんですね。 であるとすればもうひとつ管理者がユーザーによってテーブルを作られるときに自動でテーブル名を決める関数を作っておく が思い付いたのですが、 if(テーブルが作られたら){ ここの処理がわからないので教えたください。 }

  • t_ohta
  • ベストアンサー率38% (5241/13712)
回答No.1

Yahoo!デベロッパーネットワークの日本語形態素解析APIなどを使って漢字をひらがなかカタカナに変換した上で、一文字ずつローマ字に変換すればできるでしょう。 専用の関数などは無いので、全部自分で作る必要があります。 ネットで検索するとかなローマ字変換などはソースが見つかると思います。

関連するQ&A