PHP 7 simpleXML

use*_*289 63 php simplexml php-7

我正在测试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
Run Code Online (Sandbox Code Playgroud)

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

~ $ php -m
[PHP Modules]
calendar
Core
ctype
curl
...
Reflection
session
shmop
sockets
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
Zend OPcache
zlib
Run Code Online (Sandbox Code Playgroud)

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

版本信息:

~ $ 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
Run Code Online (Sandbox Code Playgroud)

小智 89

我有同样的问题,我正在使用Ubuntu 15.10.

在我的例子中,为了解决这个问题,我使用Synaptic包管理器安装了php7.0-xml包,其中包括SimpleXml.所以,重新启动我的Apache服务器之后,我的问题就解决了.这个软件包有Debian版本,你可以在这里找到它:https://packages.debian.org/sid/php7.0-xml.

  • Ubuntu 16.04:sudo apt-get install php-xml (30认同)
  • @亚历山大-谢谢!那解决了。 (2认同)
  • 看来在Ubuntu Server 16.04中也存在此问题。全新安装后,我遇到了问题。“ PHP致命错误:未捕获的错误:调用未定义的函数xml_parser_create()”正在输出到PHP错误日志。安装Alexandre建议的软件包,将其修复。 (2认同)

Fla*_*ron 62

对于所有使用Ubuntu和ppa:ondrej/phpPPA的人来说,这将解决问题:

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
Run Code Online (Sandbox Code Playgroud)

(这将添加上面提到的ppa,并且还将确保您始终拥有最新的PHP.我们使用Ondřej的PHP ppa已近两年了,它的工作方式就像魅力一样)


小智 16

适用于Ubuntu 14.04

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

sudo apt-get install php-xml
Run Code Online (Sandbox Code Playgroud)

为我工作.


Web*_*uke 12

我在Windows上使用Bash(Ubuntu 16.04),我刚刚安装了php7.0-xml,现在所有的都在用于Symfony 3.2.7 PHP的要求.

sudo apt-get install php7.0-xml
Run Code Online (Sandbox Code Playgroud)


bri*_*uth 11

对于Alpine(在码头工具中),您可以使用apk add php7-simplexml.

如果这对您不起作用,您可以运行apk add --no-cache php7-simplexml.这是为了防止您不首先更新包索引.


ter*_*ian 9

------------------在centos中-------------------------

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

 yum provides php-xml
Run Code Online (Sandbox Code Playgroud)

然后从输出列表中选择合适的一个,安装

yum install php70u-xml-7.0.14-2.ius.centos7.x86_64
Run Code Online (Sandbox Code Playgroud)


小智 9

因为谷歌把我带到这里,在 Ubuntu 20.04 上这在 2020 年有效:

sudo apt install php7.4-xml
Run Code Online (Sandbox Code Playgroud)

如果在 Apache2 上,记得重启(可能没必要):

sudo systemctl restart apache2
Run Code Online (Sandbox Code Playgroud)


小智 5

在 AWS Linux 2 上有同样的问题,phpinfo() 显示 SimpleXML 已安装但不工作,下面的 cmd 解决了我的问题

sudo yum install php-xml
Run Code Online (Sandbox Code Playgroud)