mb_regex_encodingでエンコードエラーが出ます

このQ&Aのポイント
  • フォームから投稿された時に文字をチェックするためのソースコードで、mb_regex_encoding()関数がエンコードエラーを起こしています。
  • mb_regex_encoding()関数が未定義のため、呼び出すことができずエラーが発生しています。
  • 解決策としては、mb_regex_encoding()関数を使用する前に、mbstringモジュールを有効にする必要があります。有効にするためには、php.iniファイルの設定を確認し、mbstringモジュールを有効にするように修正する必要があります。
回答を見る
  • ベストアンサー

mb_regex_encodingでエンコードエラーが出ます

お世話になります。 フォームから投稿された時に文字をチェックする物を作成しております ---------------- <?php function allHiragana($form_name, $err_name) { mb_regex_encoding("Shift_JIS"); if(!mbereg('^[あ-んが-ぼぁ-ょゎっー]+$', $_POST[$form_name])) { return $err_name. 'はひらがなで入力してください<br />'; } } ?> ------------------------------------------------ このようなソースなのですが 三行目にこのようなエラーが出ます Fatal error: Call to undefined function mb_regex_encoding() in グーグル先生に質問してみたのですがイマイチ欲しい情報を得られなかった為質問させていただきます。 よろしくお願いします。

  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • UmJammer
  • ベストアンサー率58% (115/196)
回答No.1

エラーメッセージは「mb_regex_encodingという関数が未定義ですよ」と言っています。 環境が不明のため詳しいことは分かりかねますが、マルチバイト関連の関数が有効になってないものと思われます。

miu6487
質問者

お礼

自己解決しました。 PHPのエンコードの指定方法が問題だったようです ありがとうございました

miu6487
質問者

補足

回答ありがとうございます 環境はXAMPPとEclipseを使用しております。 仰る通り[mbstring]が有効になってないようでphp.iniの設定変更を行った所今度は「Warning: mb_ereg() [function.mb-ereg]: mbregex compile err: empty range in char class in」 このようなエラーが出てしまいました。 よろしければどなたか教示くださいませ

関連するQ&A

  • mb_convert_encodingについて

    Fatal error: Call to undefined function: mb_convert_encoding() in c:\apache\htdocs\test\03-03\common.php on line 27 上記のエラーがでます。 mb_convert_encoding[文字エンコーディングを変換する] を利用するにはphp.iniで設定の変更などありますか?

    • ベストアンサー
    • PHP
  • mb_internal_encoding('sjis');

    は mb_internal_encoding('shift_jis'); とか mb_internal_encoding('shift-jis'); とか 書いてもいいのでしょうか? よりよいのはどれでしょうか?

    • ベストアンサー
    • PHP
  • mb_convert_encoding() エラー

    http://www18.tok2.com/home/koumori27/xml/pxml/pxml2.htmlのxmlpaser_sample1.php3を自分のパソコンで試したら、Fatal error: Call to undefined function: mb_convert_encoding() in c:\php\xmlpaser_sample1.php on line 99と出ました。 http://www.php.net/manual/ja/ref.mbstring.php#ini.mbstring.languageに書いてある 例 1. php.ini 設定の例 mbstring.language = Japanese; mbstring.internal_encoding = UTF-8 ; mbstring.encoding_translation = On mbstring.http_input = auto ; mbstring.http_output = UTF-8 ; mbstring.detect_order = auto ; mbstring.substitute_character = none ; と http://oshiete1.goo.ne.jp/kotaeru.php3?q=293266 に書いてある方法を試しましたが Fatal error: Call to undefined function: mb_convert_encoding() in c:\php\xmlpaser_sample1.php on line 99 が直りません。 どうすれば直るのでしょうか?

    • ベストアンサー
    • PHP
  • mb_convert_encoding()

    メール送信フォームの作成の際に Fatal error: Call to undefined function: mb_convert_encoding() というエラーがでてしまったのですが、 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1661461 の例にあったように php.iniを変更したのですが反映されません。 (apacheの再起動もしました。) php_mbstring.dllがないような気もしますが どのように確かめたらいいのか教えてください。 環境は OS:FreeBSD4.11 PHP:PHP4.4.0

    • ベストアンサー
    • PHP
  • mb_convert_encodingのタイミング

    検索フォームがあるphpファイルはShift_JISですが、検索を問い合わせるデータベースがEUC-JPになっています。 <form action="search.php" method="post"> <input type="text" name="keyword" size=30> <input type="submit" value="検索"> </form> 検索フォームで入力されたキーワードをmb_convert_encodingでShift_JISに変換してからpostしたいのですが、search.phpで検索キーワードを受け取る前にエンコード変換することは無理なのでしょうか?

    • ベストアンサー
    • PHP
  • Fatal error: Call to undefined function mb_internal_encoding()

    CAPTCHAのサンプルプログラムを動かそうと思ったのですが Fatal error: Call to undefined function mb_internal_encoding() in ”プログラムのパス” のようなエラーがでて実行することができません。 そこで、このエラー文で検索したところphpの日本語利用の環境ができていないのでは? との回答を見つけたので、参考ページを見て設定を行ったのですが、いまだにエラーが出て実行することができません。 ちなみにこのようなmb_internal_encodingのサンプルを動かすと <?php /* 内部文字エンコーディングをUTF-8に設定 */ mb_internal_encoding("UTF-8"); /* カレントの内部文字エンコーディングを表示 */ echo mb_internal_encoding(); ?> Fatal error: Call to undefined function mb_internal_encoding() in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\mbtest.php on line 2 この様なエラーが出ます。 日本語利用の為の設定で参考にしたサイトは http://www.phpbook.jp/install/phpini/index3.html こちらです。 phpのバージョンは5.2.6でOSはXPSP2です

    • ベストアンサー
    • PHP
  • Warning: mb_strpos(): Unknown encoding or conversion error について

    フォームから入力した文字を $myvalue["kana_mei"] = mb_convert_encoding($_POST["kana_mei"], "SJIS"); でSJISに変換し、 $sStr = $val["kana_mei"]; $sAllowedChars ="あいうえおぁぃぅぇぉかきくけこがぎぐげごさしすせそざじずぜぞたちつってとだぢづでどはひふへほばびぶべぼぱぴぷぺぽまみむめもなにぬねのらりるれろやゆよゃゅょわをんー "; ($sAllowedChars, "SJIS"); If(mb_strlen($sStr) > 0 ) { for ($i=0;$i<mb_strlen($sStr);$i++) { $sStr1= mb_substr($sStr,$i,1); if(!is_integer(mb_strpos($sAllowedChars,$sStr1))) { $err_msg["kana_mei"] = "※ひらがなでご記入ください。"; } } } でひらがなチェックを行っています。 IE6.0 IE7.0 では、問題ないのですが、MAC IE5.0 Fireworksでは、 mb_substr()で”Warning: mb_strpos(): Unknown encoding or conversion error”となってしまいます。 PHPのバージョンは、4.4.2です。 何方か、対処方法、教えて下さい。 宜しくお願いします。

    • ベストアンサー
    • PHP
  • PHPの設定で、 エラーが発生してしまします。。 エラーメッセージは

    PHPの設定で、 エラーが発生してしまします。。 エラーメッセージは Fatal error: Call to undefined function mb_internal_encoding() in C:\WEB\HTTP\dura.php on line 40   です、 40行目に何かあるのは確かなんですが、何が起こってるかわかりません、わかる方いませんでしょうか。。。。?

    • ベストアンサー
    • PHP
  • use encoding を使う

    フリーソフトの掲示板ソフト(shift_jis)で encoding を使おうと下記の2行を追加したところ、Internal Server Error になってしまいます。どこに追加しても同じです。 どんな原因が考えられるでしょうか。 use encoding "shiftjis"; binmode STDERR, ":encoding(shiftjis)";

    • ベストアンサー
    • Perl
  • PHPスクリプトでエンコードエラー

    (http://c-php.mine.nu/)で配布されている「貼り付けアンケート」を設置したところ、以下のようなエラーが出ました。 Warning: mb_convert_encoding(): Illegal character encoding specified in /home/toraya-c/public_html/harituke/harituke.php on line 94 Warning: mb_convert_encoding(): Illegal character encoding specified in /home/toraya-c/public_html/harituke/harituke.php on line 95 Warning: mb_convert_encoding(): Illegal character encoding specified in /home/toraya-c/public_html/harituke/harituke.php on line 96 Fatal error: Call to undefined function: mb_check_encoding() in /home/toraya-c/public_html/harituke/harituke.php on line 140 エンコードがうまくいってないようなのですが。。 指定の行数の記述は以下です。 $title = mb_convert_encoding($title,'EUC-JP',$en); $body = mb_convert_encoding($body,'EUC-JP',$en); $quest = mb_convert_encoding($quest,'EUC-JP',$en); if(!mb_check_encoding($body,'EUC-JP') || mb_check_encoding($body,'ASCII')){ 配布されているものを特に変えず(設定部分以外)、そのままupしたつもりですが、エラーの原因がわかりません。 当方、php初心者なので的外れな質問でしたら申し訳ございませんが、よろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう