web-dev-qa-db-fra.com

PHP 7 simpleXML

Je teste PHP7 et j'ai un problème étrange après une récente mise à jour. SimpleXML doit être activé par défaut, et ma page phpinfo indique qu'elle est disponible:

 enter image description here

Cependant, les fonctions ne sont pas disponibles:

<?php

if (function_exists('simplexml_load_file')) {
    echo "simpleXML functions are available.<br />\n";
} else {
    echo "simpleXML functions are not available.<br />\n";
}

// result-- NOT available

Et le module n'est pas répertorié comme chargé:

~ $ php -m
[PHP Modules]
calendar
Core
ctype
curl
...
Reflection
session
shmop
sockets
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
Zend OPcache
zlib

Quelqu'un sait s'il existe une solution pour cela?

Informations de version:

~ $ php -v
PHP 7.0.3-8+deb.sury.org~trusty+2 (cli) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
59
user101289

J'ai eu le même problème et j'utilise Ubuntu 15.10. 

Dans mon cas, pour résoudre ce problème, j'ai installé le paquet php7.0-xml en utilisant le gestionnaire de paquets Synaptic, qui inclut SimpleXml. Ainsi, après le redémarrage de mon serveur Apache, mon problème a été résolu. Ce paquet est dans la version Debian et vous pouvez le trouver ici: https://packages.debian.org/sid/php7.0-xml .

81
Alexandre Barbosa

Pour tous ceux qui utilisent Ubuntu avec ppa:ondrej/php PPA, le problème sera résolu:

apt install php7.0-mbstring php7.0-Zip php7.0-xml 

(voir https://launchpad.net/~ondrej/+archive/ubuntu/php )

Merci @Alexandre Barbosa pour l'avoir signalé!

EDIT 20160423:

One-Liner pour résoudre ce problème:

Sudo add-apt-repository -y ppa:ondrej/php && Sudo apt update && Sudo apt install -y php7.0-mbstring php7.0-Zip php7.0-xml

(Cela ajoutera le ppa mentionné ci-dessus et vous assurera également que vous avez toujours le dernier php. Nous utilisons le ppa PHP d'Ondřej depuis presque deux ans et ça marche à merveille)

55
Flatron

Pour Ubuntu 14.04 avec

PHP 7.0.13-1 + deb.sury.org ~ trusty + 1 (cli) (NTS)

Sudo apt-get install php-xml

a travaillé pour moi.

13
Deepak R

J'utilise Bash sous Windows (Ubuntu 16.04) et je viens de l'installer avec php7.0-xml. Tout fonctionne pour les besoins de Symfony 3.2.7 PHP. 

Sudo apt-get install php7.0-xml
11
WebLuke

Pour Alpine (dans le menu fixe), vous pouvez utiliser apk add php7-simplexml.

Si cela ne fonctionne pas pour vous, vous pouvez exécuter apk add --no-cache php7-simplexml. C'est dans le cas où vous ne mettez pas à jour d'abord l'index de paquet.

10
brismuth

------------------ en centos -------------------------

découvrez quel paquet fournit php-xml:

 yum provides php-xml

puis dans la liste de sortie, sélectionnez celui qui convient, installez

yum install php70u-xml-7.0.14-2.ius.centos7.x86_64
8
terwxqian

Généralement, sur les systèmes Debian, vous avez une configuration PHP différente pour la CLI et pour PHP fonctionnant comme un module Apache. Votre page phpinfo peut très bien indiquer que simplexml est activé via un serveur Web, alors qu’il n’est pas activé via CLI.

2
Mike Brant

Avait le même problème sur AWS Linux 2, phpinfo () montre que SimpleXML est installé mais ne fonctionne pas, en dessous de cmd a résolu mon problème

Sudo yum install php-xml
0
BlueP