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

我的经历

  1. 获取您的 php 版本

    php --version

  2. 为您的 php 版本安装包

    sudo apt-get install php7.4-xml

  3. 重启apache

    sudo systemctl reload apache2

  1. 使用php -v //PHP 8.0.1

  2. 在这里查看最新版本的简单xml

https://pkgs.org/download/php-simplexml

  1. 我的是版本 8 所以
sudo apt-get install php8.0-xml

就我而言,您必须确定您的 php 版本。

php -v

示例:如果您的 php 是 PHP 7.4.28,那么您必须写

sudo apt install php7.4-xml

看,而不是写所有版本,只写第一个和第二个,而不是后面 -xml

我遇到了这个问题,这需要时间,直到我了解如何正确书写。希望对你有用