mb convert encoding, неопределенная функция, в то время как mbstring включен
У меня есть сервер (Ubuntu 11.10 x64) под управлением PHP 5.3.8 с Apache2 / MySQL. В настоящее время я работаю над проектом, в котором мне нужно выполнить определенную кодировку символов, но я обнаружил, что ни одна из многобайтовых (mb_*) функций не работает.
однако, когда я смотрю в phpinfo (), я вижу, что многобайтовая поддержка включена.
Я пробовал такие вещи, как apt-get install php5-mbstring, php-mbstring, php-multibyte и т. д. так далее. но никто, кажется, работа.
может ли кто-нибудь указать мне в правильном направлении для этого? Заранее спасибо!
edit: исправлено путем перекомпиляции PHP (это было мое последнее средство, которого я изначально хотел избежать)
./настроить --возможность-работы mbstring
странно это, phpinfo () уже показал, что он был включен. Я не знаю, почему это не сработало раньше :/
3 ответов
на многих новых серверах Linux по умолчанию не установлены многобайтовые модули PHP. Простым решением часто является установка php-mbstring.
на ароматах Red Hat (CentOS, Fedora и т. д.) вы можете использовать Yum установить PHP-работы mbstring.
убедитесь, что вы перезагрузите сервер Apache после этого. Используйте перезапуск службы httpd на ароматизаторах RH.
иногда люди получают такую ошибку: фатальная ошибка: вызов неопределенной функции mb_convert_encoding () в /public_html/this/this.php в строке 188. Обычно такие ошибки возникают на PHP-сайтах и в PHP-фреймворке.
похоже, что PHP mbstring не установлен на вашем сервере.
устранение :
в моем случае у меня просто uncomment; extension=php_mbstring.dll в php.ini и вопрос решен.
Не забудьте перезапустите сервер Apache после раскомментируйте ;расширение=php_mbstring.dll файлы
код взят из этого блога: http://chandreshrana.blogspot.in/2016/01/call-to-undefined-function.html
в случае вашей установки 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.