• ベストアンサー

文字変換

全角英数字から半角英数字に変換する方法を教えてください。 ereg_replace()を使っていろいろやってみてはいるのですが、どうしても正しく動きません。 よろしくおねがいします。

noname#15014
noname#15014
  • PHP
  • 回答数2
  • ありがとう数4

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

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

拡張モジュールのmbstring使えば、 変換する関数があります。 数字だけぐらいだったら、 mbstring 使わないで その分ループするとか。 $replacetable= array("0"=>"0","1"=>"1","2"=>"2","3"=>"3","4"=>"4", "5"=>"5","6"=>"6","7"=>"7","8"=>"8","9"=>"9"); foreach($replacetable as $key => $value){ $str=ereg_replace($key,$value,$str); }

noname#15014
質問者

お礼

なるほどー。こんな考え方もあるんですね。 PHP始めたばかりなのでとても参考になりました。 ありがとうございました。

その他の回答 (1)

  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.2

#NO1同様 mbstring が使えることが前提ですが、 mb_convert_kana()という非常に便利のいい関数があります。 $str=mb_convert_kana($str,"a"); で一発です。

noname#15014
質問者

お礼

現在の環境ではmbstringは使えないのですが、参考になりました。 ありがとうございました。

関連するQ&A

  • imacでの文字変換

    windowsから最新のiMacに換えて、文字変換でお聞きしたいことがあります。 一つのボタンを押しながら、ひらがな、カタカナ、半角英数字、全角英数字と順番に変換するの見たことがあるんですか、そのようなショートカットキーがあったら教えてもらえないでしょうか。 (ちなみにFn+F7,F8,F9,F10の変換は知っています)

    • ベストアンサー
    • Mac
  • 半角英数文字を全角英数文字に変換する方法

    半角英数文字を全角英数文字に変換する方法ってありますか? どうしても半角カナのみならず、英数字まで全角に必要が出てきたんですが、何かいいてはありますでしょうか。 jcode.phpsは英数文字まで全角に出来ませんよね。 pgrep_replaceも使ってみたんですが、うまく引っ掛かりません。 PHP3とMySQLでEUC-JPを扱ってます。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • ALT+半角/全角を押さなければ、文字を変換できません。

    PCを立ち上げ、文字を最初に入力しようとすると、英数字で入力されます。 そこで、日本語に変換しようとするのですが、ALT+半角/全角を押さなければ、文字を変換できません。 その後は、半角/全角を押すだけで、変換できるようになります。 一番初めから、半角/全角を押すだけで、変換できるようにするためにはどうすればいいですか? PC dell 1525 WindowsVista Home Premium http://www.sd-dream.com/pasocompass/PC/Dell/Inspiron1525.html

  • 文字の変換

    WINDOWS7を使っています。 私は、文字の入力はカナ入力に設定しています。 TABキーを押すと、英数字の半角とひらがなのモードに切り替わるのですが 以前は、半角英数ではなくて全角英数に切り替わっていたはずなんですけど 今は、TABキー押すと、半角英数に切り替わってしまいます。 全角英数に切り替わるように設定する方法はありますか?

  • 全角英数字を半角英数字に変換したい

    全角英数字を半角英数字に変換する方法を教えて下さい。 $data =~ tr/0-9a-zA-Z/0-9a-zA-Z/; 以上のようにした場合、J-perl意外では望みどおりに変換されません。 jcode.plをつかって 全角英数字を半角英数字に変換する方法があると、 書かれていた方がいましたので、 できればjcode.plをつかった場合の 具体的なスクリプトの書き方を教えて下さい。 よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • Perl 文字変換

    Perlで全角英数字を半角英数字に変換させたいのですが、 Jcodeを使わずにできる方法を教えてほしいです。 例えば zenkaku→zenkaku のようにです。 $value=~ s/$a\xA3([\xB0-\xB9\xC1-\xDA\xE1-\xFA])$b/pack("C", ord($1) - 0x80)/oeg; こういうのを試してみたのですが、上手く行きませんでした・・・

    • ベストアンサー
    • Perl
  • 2桁の数字を半角に、1文字の英字を全角に変換したい

    最終的に縦書きでレイアウトする既存の文章を編集しているのですが、 文中の英数字を自動的に半角→全角、全角→半角に変換できるソフトを探しています。 ただし、全部の英数字を一括して全角→半角もしくはその反対に変換するのではなく、 「2桁の数字は半角に」(1桁と3桁以上は全角に)、 「1文字の英数字は全角に」(2文字以上の英数字は基本的に半角に) 変換したいのです。 マクロを利用すればいいのでしょうが、そのノウハウがなく、 また、例えば、2文字、3文字の英字は全角のままにしておきたいこともあったりして、 一般的な「検索・置換」のように、確認しながら変換していけると理想的なので、 できれば、こうした機能があるエディターソフトなどを手に入れたいと思っています。 15年近く前、MacOS用に発売された、「システムソフトエディタ」というソフトは、 ほぼ、この希望通りのことができる機能を備えていて、とても重宝したのですが、 システムソフトが開発をやめていますし、自分自身、現在はWindowsを利用しています。

  • 全角の”’¥を半角に変換したい

    PHPを勉強し始めた超初心者です。よろしくお願いいたします。 表題のとおり、PHPにて全角の”’¥を半角の"'\に変換したいのですが、うまくできません。 ----- A ----- $s = "”’¥"; mb_convert_kana( $s, "as" ); 結果:全て全角のまま。 ----- B ----- $s = "”’¥"; $s = mb_ereg_replace( '”', '"', $s ); $s = mb_ereg_replace( '’', '\'', $s ); $s = mb_ereg_replace( '¥', '\\', $s ); 結果:”’は半角になるんですが、¥は半角になりません。 なにか根本的に間違いがあるんでしょうか? あともう一つ、日本語環境について、 mb_language( "Japanese" ); mb_internal_encoding( "EUC-JP" ); mb_regex_encoding( "EUC-JP" ); mb_substitute_character( "none" ); mb_detect_order( "SJIS,EUC-JP,JIS,UTF-8,ASCII" ); と、ソースに指定しているのですが、ローカル環境がWindowsなので、ソースそのものはSJISになっていると思います。(コード体系管理できないテキストエディタ使用) しかしこれをそのままサーバーにアップしても、問題なく(文字化け等無く)print"サシスセソラリルレロ"; なども表示されるんですが、これはこれでいいんでしょうか? 以上、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 半角⇔全角の一括変換

    Excelで、全角または半角になっているものすべて(英数字、記号、文字)を一括半角または全角に一括変換できますか?もし可能なら方法を教えてください。 Excel2019利用です。

  • Excelでカタカナや英数字の変換

    1つのセルの中に【漢字】と【全角カタカナ】と【全角英数字】が入力してあります。この【全角カタカナ】と【全角英数字】を、「範囲選択後F10キー」等ではなく簡単に手際よく半角に変換する方法はありますか?

専門家に質問してみよう