マルチバイト文字列を使おうとして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"

の設定をして解決です。