PHP: Call to undefined function mb_strlen() - sur la coutume compilé PHP mbstring activé
J'ai cette coutume compilé PHP (v5.3.3) avec les extensions suivantes activé (via configure):
./configure
--prefix=/usr/local/php5.3.3
--with-config-file-path=/usr/local/apache2/conf
--with-apxs2=/usr/local/apache2/bin/apxs
--with-bz2
--with-curl=/usr/lib
--with-curlwrappers
--with-freetype-dir=/usr/local
--with-gd=/usr/local
--with-gettext
--with-gmp
--with-iconv=/usr/local
--with-imap=/usr/local/imap2007e
--with-imap-ssl
--with-jpeg-dir=/usr/local/lib
--with-kerberos
--with-libxml-dir=/usr/lib
--with-mcrypt=/usr/local
--with-mhash
--with-mysql=/usr/lib/mysql
--with-mysql-sock=/var/lib/mysql/mysql.sock
--with-mysqli=/usr/lib/mysql/mysql_config
--with-openssl=/usr
--with-pcre-dir=/usr/local/lib
--with-pear
--with-png-dir=/usr/local/lib
--with-readline
--with-sqlite
--with-xmlrpc
--with-xsl=/usr/local
--with-zlib-dir=/usr/local/lib
--with-zlib=/usr/local
--without-pgsql
--enable-bcmath
--enable-calendar
--enable-exif
--enable-embedded-mysqli=shared
--enable-ftp
--enable-gd-jis-conv
--enable-gd-native-ttf
--enable-mbstring=all
--enable-mbregex
--enable-shared
--enable-sockets
--enable-soap
--enable-sqlite-utf8
--enable-zend-multibyte
--enable-zip
--disable-pdo
--disable-phar
phpinfo() stipule clairement que mbstring est activé:
Drôle, c'est lorsque j'essaie d'exécuter des scripts PHP (SugarCRM mises à jour), il signale l'erreur suivante:
PHP Fatal error: Call to undefined function mb_strlen() dans crm/include/pclzip/pclzip.lib.php sur la ligne de 4165
Quelqu'un peut jeter un peu de lumière dans POURQUOI ce qui se passe et de comment résoudre ce problème?
Grâce,
m^e
Quelle est la version de pclzip utilisez-vous? Je ne peux pas trouver toute utilisation de mb_strlen() dans la source de n'importe où dans les trois dernières versions
Il pourrait éventuellement être un problème avec l'équilibrage de la charge de vos serveurs d'utilisation. Avez-vous des plus d'un serveur? J'avais été confronté à un problème similaire avec le cURL en PHP.
La section des commentaires dit PhpConcept Bibliothèque - Zip Module 2.4. Et ligne 4165 de ma version (celle qui vient avec SugarCRM 6.0.0) contient un mb_strlen(). Le code va comme: if (mb_strlen($v_binary_data,'iso-8859-1') != 18).
Aucun équilibrage de charge ici 🙂 C'est de la course d'un seul serveur sur Fedora 13.
C'est une très vieille version. Dernière est 2.8.2. Je ne sais pas si les développeurs de SugarCRM ont réellement changé pclzip, mais vous pourriez envisager de passer à la version 2.8.2 qui ne dépend pas de la mb_ fonctions.
Il pourrait éventuellement être un problème avec l'équilibrage de la charge de vos serveurs d'utilisation. Avez-vous des plus d'un serveur? J'avais été confronté à un problème similaire avec le cURL en PHP.
La section des commentaires dit PhpConcept Bibliothèque - Zip Module 2.4. Et ligne 4165 de ma version (celle qui vient avec SugarCRM 6.0.0) contient un mb_strlen(). Le code va comme: if (mb_strlen($v_binary_data,'iso-8859-1') != 18).
Aucun équilibrage de charge ici 🙂 C'est de la course d'un seul serveur sur Fedora 13.
C'est une très vieille version. Dernière est 2.8.2. Je ne sais pas si les développeurs de SugarCRM ont réellement changé pclzip, mais vous pourriez envisager de passer à la version 2.8.2 qui ne dépend pas de la mb_ fonctions.
OriginalL'auteur miCRoSCoPiC_eaRthLinG | 2010-11-17
Vous devez vous connecter pour publier un commentaire.
essayer
configurer à nouveau avec
--enable-mbstring
seulementgrep mb_strlen $PATH_TO_YOUR_PHP_BINARY
à voir, c'est qu'il existeUne question cependant.. grep mb_strlen donner des résultats? N'est-il pas censé être une fonction dans le mbstring de la bibliothèque. Comment va tourner dans grep?
Si la fonction n'est pas compilée avec PHP, binaire, elle retourne 0 matchs.
Hmmm.. grep renvoie pas de matches.. "grep mb_strlen /usr/local/php/bin/php --> fichier Binaire /usr/local/php/bin/php matches" 😮 Alors comment se fait un phpinfo() est de montrer la mbstring de sortie activé ?
En fait cela signifie appariés, alors vous devez essayer une autre méthode de débogage. Tout d'abord, vérifier à la fois (SugarCMS et le phpinfo) sont en cours d'exécution en utilisant la même apache et même à l'aide de PHP ?
OriginalL'auteur ajreal
Sur mon système Windows avec PHP et Apache, j'ai dû modifier le PHP.Fichier INI de sorte qu'il contienne la ligne suivante:
(à l'intérieur de la principale
[PHP]
section) et de redémarrer Apache. Après cela, l'appel àmb_strlen
a réussi.J'ai édité mon texte. Probablement maintenant, vous pouvez revenir.
OriginalL'auteur Uwe Keim
Mettre cette fonction phpinfo() dans un certain fichier php pour la sortie. Et de regarder pour MbString séparée de la boîte de là, si elle n'est pas présente, alors il n'est pas installé correctement.
OriginalL'auteur Saikrishna
Solution Simple.
Au lieu
mb_strlen()
utiliser uniquementstrlen()
.Pour moi, il a travaillé à quelques reprises.
Il est important de passer à l'encodage, car certains UTF-8, les caractères sont enregistrés dans les 2 brins - strlen ne produira pas le même résultat que mb_strlen dans certains cas
OriginalL'auteur Ivijan-Stefan Stipić
J'ai eu le même problème, c'est un problème de version de php.
de la première exécution de
pour installer mbstring à la dernière version de php
puis exécutez:
et redémarrer apache avec
Bonne chance
OriginalL'auteur Grigory Ilizirov