PHP 7 个简单的 XML
PHP 7 simpleXML
我正在测试 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
通常在 Debian 系统上,您对 CLI 和 PHP 运行 有不同的 PHP 配置,例如 Apache 模块。您的 phpinfo 页面可能会很好地显示 simplexml 是通过网络服务器启用的,而它不是通过 CLI 启用的。
我遇到了同样的问题,我使用的是 Ubuntu 15.10。
就我而言,为了解决这个问题,我使用包含 SimpleXml 的 Synaptic 包管理器安装了包 php7.0-xml。所以,在重启我的 Apache 服务器后,我的问题就解决了。这个包来自 Debian 版本,你可以在这里找到它: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
对我有用。
----------------在centos中------------------------
找出哪个包提供php-xml:
yum provides php-xml
然后从输出列表中,select合适的,安装
yum install php70u-xml-7.0.14-2.ius.centos7.x86_64
我在 Windows (Ubuntu 16.04) 上使用 Bash,我刚刚安装了 php7.0-xml,一切正常现在满足 Symfony 3.2.7 PHP 要求。
sudo apt-get install php7.0-xml
对于 Alpine(在 docker 中),您可以使用 apk add php7-simplexml
。
如果这对您不起作用,您可以 运行 apk add --no-cache php7-simplexml
。这是为了防止您没有先更新包索引。
在 AWS 上遇到了同样的问题 Linux 2,phpinfo() 显示 SimpleXML 已安装但无法正常工作,在 cmd 下解决了我的问题
sudo yum install php-xml
因为 Google 把我带到了这里,在 Ubuntu 20.04 这在 2020 年有效:
sudo apt install php7.4-xml
如果是Apache2,记得重启(可能没必要):
sudo systemctl restart apache2
对于 Ubuntu 18.04 和 php7.3,安装 php7.3-xml
sudo apt-get install php7.3-xml
这将安装所需的简单xml
我的经历
获取您的 php 版本
php --version
为您的 php 版本安装包
sudo apt-get install php7.4-xml
重启apache
sudo systemctl reload apache2
使用php -v //PHP 8.0.1
在这里查看最新版本的简单xml
https://pkgs.org/download/php-simplexml
- 我的是版本 8 所以
sudo apt-get install php8.0-xml
就我而言,您必须确定您的 php 版本。
php -v
示例:如果您的 php 是 PHP 7.4.28,那么您必须写
sudo apt install php7.4-xml
看,而不是写所有版本,只写第一个和第二个,而不是后面 -xml
我遇到了这个问题,这需要时间,直到我了解如何正确书写。希望对你有用
我正在测试 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
通常在 Debian 系统上,您对 CLI 和 PHP 运行 有不同的 PHP 配置,例如 Apache 模块。您的 phpinfo 页面可能会很好地显示 simplexml 是通过网络服务器启用的,而它不是通过 CLI 启用的。
我遇到了同样的问题,我使用的是 Ubuntu 15.10。
就我而言,为了解决这个问题,我使用包含 SimpleXml 的 Synaptic 包管理器安装了包 php7.0-xml。所以,在重启我的 Apache 服务器后,我的问题就解决了。这个包来自 Debian 版本,你可以在这里找到它: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
对我有用。
----------------在centos中------------------------
找出哪个包提供php-xml:
yum provides php-xml
然后从输出列表中,select合适的,安装
yum install php70u-xml-7.0.14-2.ius.centos7.x86_64
我在 Windows (Ubuntu 16.04) 上使用 Bash,我刚刚安装了 php7.0-xml,一切正常现在满足 Symfony 3.2.7 PHP 要求。
sudo apt-get install php7.0-xml
对于 Alpine(在 docker 中),您可以使用 apk add php7-simplexml
。
如果这对您不起作用,您可以 运行 apk add --no-cache php7-simplexml
。这是为了防止您没有先更新包索引。
在 AWS 上遇到了同样的问题 Linux 2,phpinfo() 显示 SimpleXML 已安装但无法正常工作,在 cmd 下解决了我的问题
sudo yum install php-xml
因为 Google 把我带到了这里,在 Ubuntu 20.04 这在 2020 年有效:
sudo apt install php7.4-xml
如果是Apache2,记得重启(可能没必要):
sudo systemctl restart apache2
对于 Ubuntu 18.04 和 php7.3,安装 php7.3-xml
sudo apt-get install php7.3-xml
这将安装所需的简单xml
我的经历
获取您的 php 版本
php --version
为您的 php 版本安装包
sudo apt-get install php7.4-xml
重启apache
sudo systemctl reload apache2
使用php -v //PHP 8.0.1
在这里查看最新版本的简单xml
https://pkgs.org/download/php-simplexml
- 我的是版本 8 所以
sudo apt-get install php8.0-xml
就我而言,您必须确定您的 php 版本。
php -v
示例:如果您的 php 是 PHP 7.4.28,那么您必须写
sudo apt install php7.4-xml
看,而不是写所有版本,只写第一个和第二个,而不是后面 -xml
我遇到了这个问题,这需要时间,直到我了解如何正确书写。希望对你有用