trofim
Новичок
Странные проблемы с XML (DOM) в PHP5
Пользуюсь виртуальным выделенным сервером (ОС - FreeBSD), решил установить PHP5 (до этого стояла четверка). PHP во время сборки запросил свежую libxml и libxslt. Скачал (libxml2-2.6.23, libxslt-1.1.16), установил их, потом и PHP(5.1.4) успешно встал. НО! При попытке что-либо установить в стандартный каталог /usr/local система выдавала ошибки "file system is read-only", поэтому все вышеперечисленное скомпилировал в /usr/local/etc. После подключения PHP как модуля к Apache в phpinfo() вижу: libxml2 Version 2.6.23, libxslt Version 1.1.1, libxslt compiled against libxml Version 2.6.3
Т.е. libxml подключилась новая, а libxslt почему-то подключилась старая, хотя и конфигурировал с ключами --with-libxml-dir=/usr/local/etc/libxml2' '--with-xsl=/usr/local/etc/libxslt'.
Особо сильно по поводу версии libxslt я не расстроился, главное - подключилась, уже хорошо.
Но тут начались странности при использовании XML, конкретно модуля DOMDocument. Например:
рабочий код :
//возвращает <?xml version="1.0"?>
<root><node/></root>
нерабочий код :
//ничего не возвращает, экран чистый.
И еще целая куча самых невероятных казусов. Причем никакие ошибки не появляются. Даже через Exception не поймать, поскольку какой-либо метод (напр. $xml->loadXML()) просто зависает и не возвращает никакой результат.
Что мои кривые ручки сделали не так? В администрировании Unix я чайник, поэтому думается, проблемы в инсталляции библиотек. Или в чем-то другом?
Пользуюсь виртуальным выделенным сервером (ОС - FreeBSD), решил установить PHP5 (до этого стояла четверка). PHP во время сборки запросил свежую libxml и libxslt. Скачал (libxml2-2.6.23, libxslt-1.1.16), установил их, потом и PHP(5.1.4) успешно встал. НО! При попытке что-либо установить в стандартный каталог /usr/local система выдавала ошибки "file system is read-only", поэтому все вышеперечисленное скомпилировал в /usr/local/etc. После подключения PHP как модуля к Apache в phpinfo() вижу: libxml2 Version 2.6.23, libxslt Version 1.1.1, libxslt compiled against libxml Version 2.6.3
Т.е. libxml подключилась новая, а libxslt почему-то подключилась старая, хотя и конфигурировал с ключами --with-libxml-dir=/usr/local/etc/libxml2' '--with-xsl=/usr/local/etc/libxslt'.
Особо сильно по поводу версии libxslt я не расстроился, главное - подключилась, уже хорошо.
Но тут начались странности при использовании XML, конкретно модуля DOMDocument. Например:
рабочий код :
PHP:
<?php
$xml1 = new DOMDocument();
$xml1->loadXML('<root><node/></root>');
echo $xml1->saveXML();
?>
<root><node/></root>
нерабочий код :
PHP:
<?php
$xml1 = new DOMDocument();
$xml1->loadXML('<root><node/></root>');
echo $xml1->saveXML();
$xml2 = new DOMDocument();
$xml2->loadXML('<root><node/></root>');
?>
И еще целая куча самых невероятных казусов. Причем никакие ошибки не появляются. Даже через Exception не поймать, поскольку какой-либо метод (напр. $xml->loadXML()) просто зависает и не возвращает никакой результат.
Что мои кривые ручки сделали не так? В администрировании Unix я чайник, поэтому думается, проблемы в инсталляции библиотек. Или в чем-то другом?