web-dev-qa-db-fra.com

mb_convert_encoding, fonction non définie lorsque mbstring est activé

J'ai un serveur (Ubuntu 11.10 x64) exécutant PHP 5.3.8 avec Apache2/MySQL. Je suis actuellement en train de travailler sur un projet dans lequel je suis obligé de coder des caractères spécifiques, mais j'ai découvert qu'aucun des multi-octets (fonctions mb_ *) ne fonctionnait. 

Cependant, lorsque je regarde dans phpinfo (), je constate que la prise en charge de plusieurs octets est activée.

J'ai essayé des choses comme apt-get install php5-mbstring, php-mbstring, php-multibyte, etc. etc., mais aucune ne semble fonctionner.

Quelqu'un peut-il me diriger dans la bonne direction pour cela? Merci d'avance!

edit: corrigé en recompilant PHP (c'était mon dernier recours, ce que je voulais éviter initialement)

./configure --enable-mbstring

Le plus étrange, phpinfo () a déjà montré qu’il était activé. Je ne sais pas pourquoi ça ne marchait pas auparavant: /

26
Harold

De nombreux serveurs Linux récents ne disposent pas de modules multi-octets PHP installés par défaut. Une solution simple consiste souvent à installer php-mbstring.

Sur les versions Red Hat (CentOS, Fedora, etc.), vous pouvez utiliser yum install php-mbstring.

Assurez-vous de redémarrer votre serveur Apache par la suite. Utilisez le service httpd restart sur les versions RH.

41
Lance Cleveland

Dans le cas de votre installation php5.6 est similaire à la solution de neilsimp1:

Exécuter Sudo apt-get install php7.0-mbstring et ensuite Sudo service php7.0-fpm redémarrer a fait l'affaire pour moi.

Sudo apt-get install php5.6-mbstring

puis redémarrez le service Apache

Sudo service Apache2 restart.
1
Ken Thompson

Parfois des personnes recevant ce type d'erreur: Erreur fatale: Appel de la fonction non définie mb_convert_encoding () dans /public_html/this/this.php à la ligne 188. Normalement, ce type d'erreur survient dans PHP Sites et PHP cadre également.

Il semble que PHP mbstring ne soit pas installé sur votre serveur.

Solution :

Dans mon cas, je viens de commenter; extension = php_mbstring.dll dans le fichier php.ini et le problème a été résolu.

N'oubliez pas de redémarrer le serveur Apache après avoir annulé le commentaire; extension = php_mbstring.dll

Code tiré de ce blog: http://chandreshrana.blogspot.in/2016/01/call-to-undefined-function.html

0
Chandresh