我正在测试PHP7,最近更新后有一个奇怪的问题。默认情况下应该启用SimpleXML,我的phpinfo
页面显示它是可用的:
但是,以下功能不可用:
<?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。
在我的例子中,为了解决这个问题,我使用Synaptic包管理器安装了php7.0-xml包,其中包括SimpleXml。所以,重启Apache服务器后,我的问题就解决了。这个包是Debian版本的,你可以在这里找到:https://packages.debian.org/sid/php7.0-xml.
对于所有使用Ubuntu的人来说,这将解决问题:
apt安装php7。0-Mb字符串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和
PHP7.0。13-1黛布。苏里。组织~trusty 1(cli)(新界南部)
sudo apt-get install php-xml
为我工作。