mb_convert_encoding() エラー

このQ&Aのポイント
  • mb_convert_encoding()関数が未定義のため、エラーが発生しています。
  • PHP.iniファイルの設定や参考サイトの方法を試しましたがエラーが解消されません。
  • どのようにすればmb_convert_encoding()関数を使用できるようになるのでしょうか?
回答を見る
  • ベストアンサー

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
  • 回答数2
  • ありがとう数4

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

  • ベストアンサー
  • asahina02
  • ベストアンサー率47% (95/202)
回答No.1

エラー内容的にはmb_convert_encodingが定義されていないということなので > <1> > php.iniファイルの > ;extension=php_mbstring.dll > を > extension=php_mbstring.dll > に変更する この変更が正しく反映されていないようですね。 この変更を行った php.ini は正しいファイルですか? もしかしたらそのPC内にいくつか同じ名前のファイルがあって、全然関係ない(読み込まれない)ファイルを変更してしまっていませんか? 正しいファイルを変更した場合、phpinfo()で表示される情報の中にmbstringという項が表示されると思います。

bavarois
質問者

お礼

確かにphpinfo()にmbstringという項がありませんでした。 php.iniが2つあり、1つを削除しました。 するとphpinfo()にmbstringが現れました。 しかし新たなエラーが・・・ XML error: not well-formed (invalid token) at line 3が出ます。 現在のphpinfo()のmbstring欄はこうです。 mbstring.detect_order EUC-JP mbstring.encoding_translation On mbstring.func_overload 0 mbstring.http_input auto mbstring.http_output SJIS mbstring.internal_encoding EUC-JP mbstring.language Japanese mbstring.substitute_character no value

その他の回答 (1)

  • asahina02
  • ベストアンサー率47% (95/202)
回答No.2

> XML error: not well-formed (invalid token) at line 3が出ます。 これはxmlpaser_sample1.phpの105行目で出しているエラーですね^^ ということはphp自体は正しく動いているようです。 (mbstringの問題は解決された) で、今回のエラーの原因ですが、おそらく文字コードの問題です。 私の環境で試してる限りでは、sensyu2.xml、xmlpaser_sample1.php共に EUC-JPになっていないとちゃんと動かないみたいです。 mbstring部分の設定が多少違うのでどの文字コードが正しいか不明ですが、 2つのファイルの文字コードを見直してみてください。

bavarois
質問者

お礼

xml中のEUC-JPの部分を変更したらエラーが出なくなりました! ありがとうございました!b(⌒o⌒)d

関連する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_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
  • Fatal error: マルチバイト文字列関数

    Fatal error: Call to undefined function mb_convert_encoding() 上記のようなエラーが出てしまい、困っています。 現状、phpinfo()で調べてみると 出現するはずのmbstringという項目がありません。 php.iniの状態が悪いのかと調べてみると extension=php_mbstring.dll の前には、;が無い状態です。 他の設定はこのようになっています。 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 ; php.iniというファイル自体が2つあるとこのようなエラーがでるという 事例もあったので、検索をかけてみましたが php.iniというファイルは一つしか見つかりませんでした。 また、PHP自体、mb_の付く関数をはずすと、文字化けはしますが きちんと動いてくれました。 動作環境は win PHP5 Apache です。 どこを改善すれば、直ってくれるでしょうか? 教えて頂けると嬉しいです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • mb_convert_encoding で?になる。

    $old = "名前"; $new = mb_convert_encoding($old,"EUC-JP","auto"); echo "$new"; 上のスクリプトを実行すると、’名前’が半角の’?’に なるんですよー。 何ででしょうか? ページもEUC-JPだし、phpもEUCです。 PHP Version 4.3.10で、php.iniの mbstring.internal_encodingはEUC-JPです。 OSは、テストなので自分のPCのw2kです。 mb_convert_encodingが実験的だからなのでしょうか? 他にも同じようになる物があるのでしょうか? 対処方法はあるのでしょうか?

    • ベストアンサー
    • PHP
  • Call to undefined function mb_strlen()

    Windows XP SP3 Apache2.2.8 PHP5.2.6 --- mb_strlen()関数が使えません。 「Call to undefined function mb_strlen()」 というエラーが表示されます。 php.iniの設定の問題なのでしょうか? [mbstring]の部分だけ貼り付けておきます。 [mbstring] mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_output = UTF-8 mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none; mbstring.func_overload = 7

    • ベストアンサー
    • 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
  • mb_convert_encoding で 一部の文字が変換できない。

    こんにちは、初めて質問させていただきます。 PHPでテキストファイルに保存されたEUC-JPの文字列情報を UTF-8で表示しようとしています。 第一水準、第二水準程度の日本語は問題なく変換ができてるのですが、 「(7)」や「VII」などの特殊な記号文字が変換できないようです。 これは mb_convert_encoding の仕様なのでしょうか? ご存知でしたらご教授お願いいたします。 【ソース】 $buffer = "マル4→(4) ギリシャ4→IV 郵便番号→〒 株式会社→(株) \n"; echo mb_convert_encoding($buffer, "utf-8", "euc-jp"); 【出力結果】 マル4→? ギリシャ4→? 郵便番号→〒 株式会社→? 【環境情報】 Linux (OS、バージョン詳しくは分かりません。) PHP Version 4.3.9 mbstring.detect_order      no value mbstring.encoding_translation  Off mbstring.func_overload      0 mbstring.http_input       pass mbstring.http_output       pass mbstring.internal_encoding    EUC-JP mbstring.language        Japanese mbstring.script_encoding     no value mbstring.substitute_character  no value (Local Value、Master Value 共に同値です。)

    • ベストアンサー
    • PHP
  • mb_convert_kanaを使うと出るエラー

    環境:Win32/Apache2.4.0/5.3.9RC3(C:\apache\php) mb_convert_kanaを使おうとするとエラーが出てしまいます。 Fatal error: Call to undefined function mb_convert_kana() in C:\apache\htdocs\test1.php on line 9 ネットで調べてみるとphpの再インストールが必要で bin/mkphp.shに下記インストール用スクリプトを書いて make cleanをすると良いとのことですが、mkphp.shがありません。 ------------------------------------------------------ make clean ./configure --with-apxs2=/usr/local/apache/bin/apxs \ --with-pgsql=/usr/local/pgsql \ --enable-mbstring \ --enable-mbregex \ --enable-gd-native-ttf \ --enable-memory-limit \ --enable-zend-multibyte \ --with-openssl \ --with-gd \ --with-ttf \ --with-freetype-dir \ --with-jpeg-dir \ --with-xpm-dir \ --with-zlib-dir \ --with-java \ && make && make install ------------------------------------------------------ また、参考になるか分かりませんが、 php.infoをブラウザで見たときに Configuration File (php.ini) Path には、C:\Windowsと表示されています。 <?php echo mb_internal_encoding(); phpinfo(); ?> とecho mb_internal_encoding();を追加してブラウザでみるとエラーが出てしまいます。 ヒントだけでも教えて下さい。

    • ベストアンサー
    • PHP
  • i18n_convert と mb_convert_encoding の違い

    メールの文字化け問題で色々ここも見たのですが ズバリ $enc = mb_detect_encoding($body); $body = mb_convert_encoding($body,"AUTO",$enc); と $enc = mb_detect_encoding($body); $body = i18n_convert($body,"AUTO",$enc); の違いが分かりません。 同じ事をしていると思うのですが・・・。 あと、受信するメーラーや PCが変わると 本文が文字化けしたりしなかったりで "AUTO"の部分をJISにしたらまず文字化けします AUTOなら良かったり良くなかったりです php.iniのこともよく出ていましたが 今レンタルサーバー使っています PHP 4.3.2 を入れているようです 文字コードについてはサーバー管理者に聞かないといけないのでしょうか パリッと文字化けしないようにしたいのですが 何かいい方法はないでしょうか?

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

    XOOPS Cube Legacy をインストール中下記エラーでつまずき解決できません。 Fatal error: Call to undefined function mb_language() in C:\Inetpub\wwwroot\install\language\ja_utf8\install.php on line 190 ----------------------------- line 190からの中身は 190:mb_language( 'Japanese' ) ; 191:mb_internal_encoding( 'UTF-8' ) ; 192:mb_http_output( 'UTF-8' ) ; 193:@ini_set('default_charset', _INSTALL_CHARSET); 194:?> となっており190をコメントにすると191-193でもエラーになってしまいます。 解決方法ご存知でしたらご伝授ください。 環境 Windows XP SP2 IIS PHP5,Mysql インストール、初期動作確認済

    • ベストアンサー
    • PHP

専門家に質問してみよう