Подтвердить что ты не робот

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
4b9b3361

Ответ 1

У меня была такая же проблема, и я использую Ubuntu 15.10.

В моем случае, чтобы решить эту проблему, я установил пакет php7.0-xml с помощью диспетчера пакетов Synaptic, который включает SimpleXml. Итак, после перезагрузки моего сервера Apache моя проблема была решена. Этот пакет поставляется в версии Debian, и вы можете найти его здесь: https://packages.debian.org/sid/php7.0-xml.

Ответ 2

Для всех тех, кто использует 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 за то, что указали это!

EDIT 20160423:

One-liner для устранения этой проблемы:

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. Мы используем Onpřej PHP ppa уже почти два года, и он работает как шарм)

Ответ 3

Для Ubuntu 14.04 с

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

sudo apt-get install php-xml

работал у меня.

Ответ 4

Я использую Bash в Windows (Ubuntu 16.04), и я только что установил с php7.0-xml, и теперь все работает для требований PHP Symfony 3.2.7.

sudo apt-get install php7.0-xml

Ответ 5

Для Alpine (в докере) вы можете использовать apk add php7-simplexml.

Ответ 6

------------------ в centos -------------------------

узнать, какой пакет предоставляет php-xml:

 yum provides php-xml

, затем из выходного списка выберите соответствующий, установите

yum install php70u-xml-7.0.14-2.ius.centos7.x86_64

Ответ 7

Обычно в системах Debian у вас есть другая конфигурация PHP для CLI, а для PHP - как Apache. Ваша страница phpinfo может очень хорошо показать, что simplexml включен с помощью веб-сервера, в то время как он не включен через CLI.