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启用的。