XAMPPでphpのサンプルコードを書いて勉強してたところ
マルチバイト関数が正常に機能してませんでした
ちょっと調べたところ
「mb_substr」のような マルチバイト関数を扱うにはPHP設定ファイル(php.ini)の一部を編集し
「extension=php_mbstring.dll」のコメントを解除することでマルチバイト関数が使えるようになるようです
「c:xamppphpphp.ini」をテキストエディタで開きます
955行目の「extension=php_mbstring.dll」はコメントが解除されてますね…
文字コードの問題なのかと
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を扱う勉強中です