dポイントプレゼントキャンペーン実施中!

質問させていただきます。
以下の内容を実行すると、「Fatal error: Call to undefined
function mb_language」と表示され、メールの送信が行えず、
過去の事例などから、php.iniのmbstringの設定や、
extension=php_mbstring.dllの設定を行いましたが、
現象は変わりませんでした。
phpinfoで確認しても、マルチバイトの設定が表示されず困っております。

mb_language("Ja");
mb_internal_encoding("SJIS");
if(mb_send_mail($to, $subject, $msg, $header))

設定は以下のようにしました。

extension=php_mbstring.dll ※コメントを解除


[mbstring]
; language for internal character representation.
mbstring.language = Japanese

; internal/script encoding.
; Some encoding cannot work as internal encoding.
; (e.g. SJIS, BIG5, ISO-2022-*)
mbstring.internal_encoding = UTF-8

; http input encoding.
mbstring.http_input = pass

; http output encoding. mb_output_handler must be
; registered as output buffer to function
mbstring.http_output = pass

; enable automatic encoding translation according to
; mbstring.internal_encoding setting. Input chars are
; converted to internal encoding by setting this to On.
; Note: Do _not_ use automatic encoding translation for
; portable libs/applications.
mbstring.encoding_translation = off

; automatic encoding detection order.
; auto means
mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII

; substitute_character used when character cannot be converted
; one from another
mbstring.substitute_character = none;

; overload(replace) single byte functions by mbstring functions.
; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(),
; etc. Possible values are 0,1,2,4 or combination of them.
; For example, 7 for overload everything.
; 0: No overload
; 1: Overload mail() function
; 2: Overload str*() functions
; 4: Overload ereg*() functions
mbstring.func_overload = 0

A 回答 (3件)

ANo.1です。



PHPは、"C:\PHP"の下にインストールされていますか?
"C:\WINDOWS\php.ini"は、PHPから認識されていますか?

Windows2003Serverでの例ですが、
PHPは、 "C:\Program Files\PHP"にインストール
"C:\Program Files\PHP\php.ini"が、PHPから認識されています。
php.iniでの extension_dir 記述は
「extension_dir = "./ext"」となっています。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

>PHPは、"C:\PHP"の下にインストールされていますか?

"C:\PHP"にインストールしております。

>"C:\WINDOWS\php.ini"は、PHPから認識されていますか?

php.iniの設定変更した内容が、反映されておりませんでした。
変更後IISを再起動しておりましたが、それだけでは反映されなかった
ようで、サーバーの再起動を行いましたら、マルチバイトの設定内容が
phpinfo()に反映されました。
まだ、勉強を始めたばかりなのですが、頑張りたいと思います。

今回は本当にありがとうございました。

お礼日時:2008/10/28 14:43

extension_dirは正しく設定されていますか?


PHPで認識されているphp.iniを書き換えていますか?
(phpinfo()上の「Loaded Configuration File」)
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

Loaded Configuration Fileは「C:\WINDOWS\php.ini」となっており、
extension_dirは「extension_dir = "C:\PHP\ext"」となっております。

お礼日時:2008/10/28 09:48

>phpinfoで確認しても、マルチバイトの設定が表示されず困っております。



とのことですのでマルチバイト対応用のモジュールがインストールされていないようです。

マルチバイト対応モジュールをインストールすれば解決します。
(参考URLを参照)

P.S

 >extension=php_mbstring.dll

 とされていますが、OSはWindows系ですか?
そうであれば、インストールされたphpがマルチバイトに対応していたか
 どうかを確認してみてください。

参考URL:http://www.php.net/manual/ja/ref.mbstring.php
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

環境を記述するのを忘れておりました。
申し訳ございません。

OSは WindowsXP Pro SP3 です。
PHPのバージョンはVersion 5.2.6です。

マニュアルに、「PHP 4.3.0 以降、mbstring 拡張モジュールは 日本語のほかに中国語 (簡体字)・中国語 (繁体字)・ 韓国語・ロシア語をサポートするように機能拡張されました。」
とありましたので、「extension=php_mbstring.dll」をコメントアウト
すれば使用できるものかと思っておりました。

お礼日時:2008/10/28 10:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!