作成日:
マルチバイト文字列を使おうとしてundefined functionエラー
PHPを使って日本語処理をしようとスクリプト書いて実行したところエラー発生
実行したのはWindows PCです。
Fatal error: Uncaught Error: Call to undefined function mb_strlen()
拡張モジュールを使う設定になっていないのだろうと設定を確認。まずはこちら。
php -r "echo phpinfo();"
結果は次のとおりでphp.iniが未設定でした。
Configuration File (php.ini) Path =>
Loaded Configuration File => (none)
php.iniファイルを作成
php.ini-developmentをコピーしてphp.iniを作成。mbstringを有効にしました。
extension=mbstring
extension_dirを設定
今度はこのエラーです。
PHP Warning: PHP Startup: Unable to load dynamic library 'mbstring' (tried: C:\php\ext\mbstring (指定されたモジュールが見つかりません。), C:\php\ext\php_mbstring.dll (指定されたモジュールが見つかりません。)) in Unknown on line 0
PHPのインストール先とモジュールを見に行く先が一致していません。
extension_dir = "{PHPのインストール先}\ext"
の設定をして解決です。