xampp1.7.3でマルチバイト関数を使えるようにphp.iniの変更


XAMPPでphpのサンプルコードを書いて勉強してたところ
マルチバイト関数が正常に機能してませんでした

ちょっと調べたところ
「mb_substr」のような マルチバイト関数を扱うにはPHP設定ファイル(php.ini)の一部を編集し
「extension=php_mbstring.dll」のコメントを解除することでマルチバイト関数が使えるようになるようです

「c:xamppphpphp.ini」をテキストエディタで開きます
php_01

955行目の「extension=php_mbstring.dll」はコメントが解除されてますね…

文字コードの問題なのかと
php_02
1780行目の「;mbstring.internal_encoding = EUC-JP」のコメントを外してみました

php.iniを変更したときは XAMPPのコントロールパネルから Apacheを再起動します

「mbstring.internal_encoding = EUC-JP」にしても解消されず

php.iniのファイル自体がShift-JISになっていたので ファイルの文字コードをUTF-8にし
php.iniの1780行目を「mbstring.internal_encoding = UTF-8」に合わせました

Apacheを再起動したら ようやくマルチバイト関数が正常に利用できるようになりました

結論

php.iniのファイルの文字コードと 「mbstring.internal_encoding =」の文字コードが一致していなかったので原因でした
おそらく 「EUC-JP」や「Shift-JIS」でも 一致していれば マルチバイト関数を使えると思います

ただいま phpでExcelを扱う勉強中です