web-dev-qa-db-ja.com

mb_convert_encoding、mbstringが有効な場合の未定義関数

Apache2/MySQLでPHP 5.3.8を実行しているサーバー(Ubuntu 11.10 x64)があります。現在、特定の文字エンコードを行う必要があるプロジェクトに取り組んでいますが、マルチバイト(mb_ *関数)のいずれも機能していないことがわかりました。

ただし、phpinfo()を見ると、マルチバイトサポートが有効になっていることがわかります。

私はapt-get install php5-mbstring、php-mbstring、php-multibyteなどのようなものを試しましたが、どれもうまくいかないようです。

誰も私にこれを正しい方向に向けることができますか?前もって感謝します!

編集:PHP(これは私の最後の手段でしたが、最初は避けたいと思っていました)

./configure --enable-mbstring

奇妙なことに、phpinfo()は既に有効になっていることを示しています。以前はなぜ機能しなかったのかわかりません:/

29
Harold

新しいLinuxサーバーの多くにはPHPがデフォルトでインストールされています。シンプルな解決策はphp-mbstringをインストールすることです。

Red Hatフレーバー(CentOS、Fedoraなど)では、yum install php-mbstringを使用できます。

必ずApacheサーバーを再起動してください。 RHフレーバーでservice httpd restartを使用します。

44
Lance Cleveland

インストールの場合、php5.6はneilsimp1のソリューションに似ています:

ランニング Sudo apt-get install php7.0-mbstring その後 Sudo service php7.0-fpm再起動は私のためのトリックをしました。

Sudo apt-get install php5.6-mbstring

その後、Apacheサービスを再起動します

Sudo service Apache2 restart.
4
Ken Thompson

時々この種のエラーを受け取る人々:致命的なエラー:188行目の/public_html/this/this.phpの未定義関数mb_convert_encoding()を呼び出します。通常、この種のエラーはPHP SitesとPHPフレームワークも。

PHPサーバーにインストールされていないmbstring。

解決 :

私の場合、php.iniファイルの; extension = php_mbstring.dllのコメントを外すだけで、問題は解決しました。

コメントを外した後、Apacheサーバーを再起動することを忘れないでください; extension = php_mbstring.dll

このブログから取られたコード: http://chandreshrana.blogspot.in/2016/01/call-to-undefined-function.html

0
Chandresh