PHP 7 simpleXML

我正在testingPHP7,最近更新后有一个奇怪的问题。 SimpleXML应该默认启用,我的phpinfo页面显示它是可用的:

在这里输入图像说明

但是,function不可用:

 <?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 

并且该模块未列为已加载:

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

任何人都知道是否有这个解决方法?

版本信息:

 ~ $ 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 

我有同样的问题,我使用Ubuntu 15.10。

在我的情况下,为了解决这个问题,我使用包含SimpleXml的Synaptic包pipe理器安装了包php7.0-xml。 所以,重启我的Apache服务器后,我的问题就解决了。 这个软件包来自Debian版本,你可以在这里find它: https : //packages.debian.org/sid/php7.0-xml 。

对于所有那些使用Ubuntu的ppa:ondrej/php PPA,这将解决这个问题:

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

(请参阅https://launchpad.net/~ondrej/+archive/ubuntu/php

感谢@Alexandre Barbosa指出这一点!

编辑20160423:

单线来解决这个问题:

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

(这将增加上面提到的ppa,并且还会确保你总是拥有最新的php。我们使用Ondřej的PHP ppa近两年了,它的工作就像魅力一样)

适用于Ubuntu 14.04

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

 sudo apt-get install php-xml 

为我工作。

我在Windows(Ubuntu 16.04)上使用Bash,并且只安装了php7.0-xml,现在所有的工作都是针对Symfony 3.2.7 PHP的要求。

 sudo apt-get install php7.0-xml 

——————在centos ————————-

找出哪个包提供了php-xml:

  yum provides php-xml 

然后从输出列表中select合适的一个安装

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

对于高山(在docker),你可以使用apk add php7-simplexml

通常在Debian系统上,你有不同的PHPconfiguration,用于CLI,PHP运行的也就是Apache模块。 您的phpinfo页面可能会很好地显示simplexml是通过Web服务器启用的,而不是通过CLI启用的。