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
Ответы
Ответ 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.