[PHP] mb_convert_kana() / mb_convert_encoding() などが使えずエラーが発生する時の対処法

PHP で mb_convert_kana() を使おうとしたら、以下のようなエラーが出ました。

PHP Fatal error:  Call to undefined function mb_convert_kana() in ...

これは、使っている PHP 環境に mbstring というモジュールが入っていない場合に生じます。
mbstring は拡張モジュールなので、デフォルトではインストールされないようです。
(Windows の XAMPP などを使っている場合は最初からインストールされるように設定されているようですが)

    これを解決するためには、以下の作業を行います:

    • mbstring モジュールをインストールする
    • php.ini で mbstring モジュールを有効化する

    以下に、いくつかのケースでの対応方法を紹介します。

    Windows で PHP をインストールした場合

    XAMPP の場合はあらかじめ mbstring が有効になっているようですが、そうでない場合は、php.ini ファイル内で mbstring モジュールを有効化します。

    php.ini 内の

    ;extension=php_mbstring.dll
    

    という行を見つけて、以下のように行頭のセミコロン「;」を削除します。

    extension=php_mbstring.dll
    

    その後、Web サーバーを再起動する必要があります。

    yum を使って PHP をインストールしている場合

    Linux などで yum を使って PHP をインストールした場合は、
    yum を使って mbstring もインストールできます:

    # yum install php-mbstring
    

    php.ini への登録も同時に行われます。
    インストール後、Web サーバーを再起動します。

    ソースコードからコンパイルした PHP を使っている場合

    ソースコードからコンパイルした PHP を使っている場合は、mbstring モジュールを有効化した上で再コンパイルする必要があります。
    具体的には、configure スクリプト実行時に「–enable-mbstring」というオプションを付けておきます。

    コンパイル&インストール後、Web サーバーを再起動します。


    Pocket
    Bookmark this on Yahoo Bookmark

    コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

    次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>