PHP4 не открывается XML-файл

Weihnachtsmann

Новичок
PHP4 не открывается XML-файл

Добрый день. Возникла следующая проблема:
Работаю с PHP 4.3.10 с XML-файлами через domxml. В одной папке со скриптом лежит XML-файл следующего содержания:

<?xml version="1.0" encoding="windows-1251"?>
<root>
<title>Заголовок</title>
<text>Текст</text>
</root>

Код php-странички:

<?

if (!$dom = domxml_open_file("file.xml"))
{
echo ("Не открывается...");
exit;
}

$root = $dom->document_element();

?>

Функция domxml_open_file почему-то всегда возвращает FALSE, т.е. файл не открывается... Не могу понять, почему?
 

olpa

Новичок
Попробуйте заменить
PHP:
<?xml version="1.0" encoding="windows-1251"?>
<root>
<title>Заголовок</title>
<text>Текст</text>
</root>
на
PHP:
<?xml version="1.0"?>
<root>
<title>Zagolovok</title>
<text>Tekst</text>
</root>
 

sage

Новичок
olpa
не говори ерунду!
Weihnachtsmann
всё дело вот в этом:
PHP:
!$dom = domxml_open_file("file.xml")
Замени на
PHP:
if (!($dom = domxml_open_file("file.xml")))
 

sage

Новичок
mani13
сорри, не знал по поводу замечания. прошу прощения
 

Weihnachtsmann

Новичок
Есть еще какие-нибудь идеи? Может быть что-то в конфигурации самого php?
 

sage

Новичок
попробуй то, что написано в комментах посетителей
 

Long

Новичок
передай третий параметр фунции domxml_open_file и посмотри сообщение об ошибке.
 

Weihnachtsmann

Новичок
Пишу:

<?
echo "Открываю...<br>";

if (!$dom = domxml_open_file("1.xml", DOMXML_LOAD_PARSING, $err))
{
echo "Не открывается!<br>";
echo "Ощибка: <br>";
echo $err[0]."<br>";
echo count($err)."<br>";
exit;
}

echo "Открыто!<br>";

?>

В результате не получаю:

Открываю...
Не открывается!
Ощибка:

0
 

slach

Новичок
указанный тобой код
прекрасно работает под win32 php4.3.11
какая версия php у тебя?

1) проверь права доступа на 1.xml
2) пропиши полный путь к файлу
 

Weihnachtsmann

Новичок
phpversion() показывает что у меня версия 4.3.10.
1) Права доступа наверное ни при чем, т.к. тестирую на локальной машине под Win. Коплекс Apache + PHP из состава пакета Денвер для Win32.
2) Прописал полный путь - ничего не изменилось...

Я уже в панике :(
 

slach

Новичок
если у тебя NTFS - то права доступа очень даже причем...

попробуй запустить через
php.exe -c путь до твоего php.ini -f путь до скрипта

что выходит?
 

Weihnachtsmann

Новичок
так... Права доступа проверил - все ок.
При запуске php.exe сначала начал ругаться, что модуль php_domxml.dll не найден. Скопировал его из extensions в windows\system. Ругаться перестал. Запустил php.exe с теми параметрами, что вы предложили, вот что получилось:

PHP Warning: domxml_open_file(): I/O in z:\home\test2.ru\www\parser.php on line 5

PHP Warning: domxml_open_file(): warning : in z:\home\test2.ru\www\parser.php on line 5

PHP Warning: domxml_open_file(): failed to load external entity &quot;1.xml&quot; in z:\home\test2.ru\www\parser.php on line 5

PHP Notice: Undefined offset: 0 in z:\home\test2.ru\www\parser.php on line 9
 

slach

Новичок
это у тебя там случайно не денвер стоит ???

вообще php_domxml.dll зря из extrensions выкинул
верни взад
и поправь php.ini на предмет
extension_dir

а вот в system32 надо положить libxml*.dll и libxslt*.dll
 

Weihnachtsmann

Новичок
Да, именно денвер.

php_domxml.dll в extensions остался, я никуда его не выкидывал.

extension_dir стоит "./" - это так и должно быть?

А вот где взять libxml*.dll и libxslt*.dll? Перерыл всю папку с php - ничего не нашел. Скачал отдельно полный php 4.3.10 и 4.4.0 - там тоже нету... :(

Прочитал статью Как поставить php4 DOMXML под win32. Вроде все сделал как написано, но не нашел libxml.dll, вместо нее поставил libxml2.dll и xsltproc.exe при старте ругается что ему нужен какой-то zlib1.dll... :(

А вообще, может посоветуете какую-нибудь нормальную версию php, без этого идиотского денвера, где эти библиотеки сразу установлены? Или такой нет?
 

Weihnachtsmann

Новичок
IMPer@tor
К сожалению, нет :( Пришлось использовать текстовую БД txtSQL вместо XML. Кстати, очень удобно получилось ;)
 

IMPer@tor

Новичок
Weihnachtsmann
Чорт. :)
А мне нужен ХМЛ. Библиотеки все стоят, но файлы он не открывает ни в какую.
 
Сверху