Je suis récemment passé à PHP 7 sur mon serveur de développement, qui a très bien fonctionné jusqu'à présent.
Depuis que j'ai mis à jour PHP 7.0.3-10+deb.sury.org~trusty+1
(plus tôt dans la journée), les fonctions utf8_decode
et utf8_encode
ne sont plus accessibles. Ils étaient cependant dans les versions précédentes de PHP7. Lorsqu'il est appelé, une erreur fatale est générée.
J'ai lu que ces fonctions sont fournies par l'extension mbstring
que j'ai vérifiée avec var_dump(extension_loaded('mbstring'));
est chargée.
Comment puis-je faire fonctionner les fonctions ci-dessus à nouveau?
J'ai eu le même problème. Il suffit d'installer le paquet php7.0-xml
. Ubuntu 16.04:
Sudo apt-get install php7.0-xml
Edit: Redémarrez Apache2 pour charger le nouveau package.
Sous Ubuntu, vous avez reçu le message suivant lors de la mise à niveau de PHP7:
php7.0 (7.0.3-6) unstable; urgency=medium
* Several extensions have been split into separate extension packages:
- php-dba - Database (dbm-style) Abstraction Layer
- php-mbstring - Multibyte String
- php-soap - SOAP
- php-xml - DOM, SimpleXML, WDDX, XML, XMLReader and XMLWriter
- php-Zip - Zip
* The new packages are not installed automatically, so you will need to
install them by hand, if you use the functions in those modules.
* Most modules that have been builtin before are now included in
php7.0-common package and they are enabled by default for your
convenience. You can disable unneede modules via phpdismod tool.
-- Ondřej Surý <[email protected]> Mon, 22 Feb 2016 12:37:09 +0100
c'est donc l'un de ces paquets qui pose problème. Dans ce cas, c'est php-xml
.
Noter la
Les nouveaux packages ne sont pas installés automatiquement
Vous pouvez résoudre ce problème en
Sudo apt-get install php-xml
Sudo Apache2ctl graceful
Comme la réponse la plus votée n'a pas fonctionné pour moi, j'ai trouvé un autre paquet pour php7 qui (le nom est évident) l'a corrigé pour moi
Sudo apt-get install php7.0-mbstring
Si vous êtes sur CentOS, la commande suivante devrait fonctionner:
yum install php-xml
Dans Ubuntu 16.04 LTS, avec php 5.6, essayez:
Sudo apt-get install php5.6-xml
Sudo service Apache2 restart
Les fonctions utf8_decode et utf8_encode sont accessibles en php 7:
function.utf8-encode - manuel - php
En effet, le paquet php-xml manque dans votre installation php.
Si votre serveur exécute Mandrake, entrez "urpmi php-xml".
Si votre serveur exécute EASYPHP sous Windows, cliquez sur le logo EASYPHP pour activer le module php-xml.
Sur Debian ou Ubuntu, essayez:
apt-get install php7.0-xmlrpc