URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 3308
[ Назад ]

Исходное сообщение
"Проблема с XML в PHP под Apache"

Отправлено stan777 , 10-Май-05 22:50 
Стоит Apache 2.0.1 и РНР-4
Хочу подключить xml-файл в свои страницы делаю так:
.рнр-файл
--------------------------------------------------------
<?
    $xmlfilename = "test.xml";
    $code = "UTF-8";                            // Кодировка xml-а
    $curcode = "Windows-1251";                  // Текущая кодировка

    $level = 0;                                 // Уровень вложенности
    $list = array();                            // Список элементов в xml-файле

    function drawspace()
    {
        global $level;
        for ($i = 0; $i < $level * 10; $i++)
        {
            echo " ";
        }
    }

    // Обрабатывает текст между тегами
    function characterhandler ($parser, $data)
    {
        global $code;
        global $curcode;

        drawspace();
        $data = mb_convert_encoding($data, $curcode, $code);
        $data = trim($data)."<br>";
        echo $data;
    }

    // Обрабатывает открывающиеся теги
    function starthandler ($parser, $name, $attribs)
    {
        global $level;
        global $list;

        global $code;
        global $curcode;

        $name = mb_convert_encoding($name, $curcode, $code);
        $list[] = $name;
        drawspace();
        echo "<<font color='blue' size='+1'>$name</font>";
        foreach ($attribs as $atname => $val)
        {
            echo " $atname => $val";
        }
        echo "><br>";
        $level++;
    }

    // Обрабатывает закрывающиеся теги
    function endhandler ($parser, $name)
    {
        global $level;
        global $list;

        array_pop($list);
        $level--;
        drawspace();
        echo "<<font color='blue' size='+1'>/$name</font>><p>";
    }

    // Создадим парсер
    $parser = xml_parser_create($code);
    if (!$parser)
    {
        exit ("Не могу создать парсер");
    }
    else
    {
        echo "Парсер успешно создан<p>";
    }

    // Установим обработчики тегов и текста между ними
    xml_set_element_handler($parser, 'starthandler', 'endhandler');
    xml_set_character_data_handler($parser, 'characterhandler');

    // Откроем файл с xml
    $fp = fopen ($xmlfilename, "r");
    if (!$fp)
    {
        xml_parser_free($parser);
        exit("Не могу открыть файл");
    }

    while ($data = fread($fp, filesize($xmlfilename)))
    {
    global $xml_parser;
        if (!xml_parse($parser, $data, feof($fp)))
        {
            die(sprintf("XML error: %s at line %d",
                        xml_error_string(xml_get_error_code($parser)),
                        xml_get_current_line_number($parser)));
                        print("<p>suxxx</p>");
        }
        print("<p>say hi</p>");
    }

    fclose ($fp);
    xml_parser_free($parser);
?>
---------------------------------------------------------------
test.xml
-----------------------------------------------
<?xml version="1.0" encoding="UTF-8"?><album><foto smallfoto="Fotos/1smallvelo.jpg " bigfoto="Fotos/1bigvelo.jpg "><SMALLFOTO>Fotos/1smallvelo.jpg </SMALLFOTO><BIGFOTO>Fotos/1bigvelo.jpg </BIGFOTO><TITLE>Велотриал </TITLE><COMMENT>Это было у нас в Крылатском зимой 2002-го года </COMMENT><DATE>26.05.2003 </DATE><COLOR></COLOR><DETAILED>0</DETAILED></foto>
    <foto smallfoto="Fotos/smallbardak.jpg " bigfoto="Fotos/bigbardak.jpg ">
         <SMALLFOTO>Fotos/smallbardak.jpg </SMALLFOTO>
         <BIGFOTO>Fotos/bigbardak.jpg </BIGFOTO>
         <TITLE>Рабочий беспорядок </TITLE>
         <COMMENT>Это было Сѓ меня РЅР° столе, РєРѕРіРґР° СЏ паял таймер для фотопечати, которого, кстати, РґРѕ СЃРёС… РїРѕСЂ нет :) </COMMENT>
         <DATE>27.05.2003 </DATE>
         <COLOR></COLOR>
         <DETAILED>1</DETAILED>
     </foto>
</album>
-------------------------------------------------------------------

(Если просмотрели до того места уже спосибо...) При просмотре страницы .рнр на сервере через мозилу, получаю ответ:
---------------------------------------------------------------
Warning: Unknown(/var/www/html/xml.php): failed to open stream: Permission denied in Unknown on line 0

Warning: (null)(): Failed opening '/var/www/html/xml.php' for inclusion (include_path='.:/usr/share/pear') in Unknown on line 0
----------------------------------------------------------------

В чем дело если встречались помогите !!! плиз не охота юзать базы данных.
у меня установлены модули xml_rpc и dom_xml других xml'ных модулей вроде нет.


Содержание

Сообщения в этом обсуждении
"Проблема с XML в PHP под Apache"
Отправлено FLamY , 10-Май-05 23:53 
Он не может найти файл "xml.php"
До обработки XML он даже не дошел.

"Проблема с XML в PHP под Apache"
Отправлено GD , 11-Май-05 13:48 
>Он не может найти файл "xml.php"

или правов на xml.php не хватает

>До обработки XML он даже не дошел.



"Проблема с XML в PHP под Apache"
Отправлено stan777 , 11-Май-05 15:16 
>>Он не может найти файл "xml.php"
>
>или правов на xml.php не хватает
>
>>До обработки XML он даже не дошел.

:( а что делать простые .рнр-скрипты апач обрабаывает, а тот даже не видет(xml_rpc и dom_xml стоят). Кстати IIS отвечат на запуск скрипта открывающего XML-файл...:
----------------------------------------
Парсер успешно создан
XML error: XML declaration not finished at line 1
--------------------------------------------
Почему тут ощибка кодировка вроде как UTF-8



"Проблема с XML в PHP под Apache"
Отправлено stan777 , 11-Май-05 15:18 
>>>Он не может найти файл "xml.php"
>>
>>или правов на xml.php не хватает
>>
>>>До обработки XML он даже не дошел.
>
на счет прав я под root



"Проблема с XML в PHP под Apache"
Отправлено FLamY , 11-Май-05 15:47 
> на счет прав я под root

Тут не твои права были упомянуты, а права файла.


"Проблема с XML в PHP под Apache"
Отправлено stan777 , 11-Май-05 15:53 
>> на счет прав я под root
>
>Тут не твои права были упомянуты, а права файла.
ок это я посмотрю, а не знаешь почему из по IIS-5.1
(все прежние условия, только веб-сервер не апач а IIS)
Пишет:
------------------------------
Парсер успешно создан
XML error: XML declaration not finished at line 1
----------------------------------
(ему что не нравится деклорация ХМЛ она там такая <? version="1.1" encoding="UTF-8"?>)
я пробовал менять кодировки все тоже самое.
не знаю почему это в инете ответа пока не нашел. :(, а с линуксом щас загружусь а как права файла поднять(не принципиально) ?  


"Проблема с XML в PHP под Apache"
Отправлено stan777 , 11-Май-05 18:04 
Все Работает ! Ты был прав на счет прав доступа ! Как только я разрешил доступ до .рнр и чтение test.xml Все заработало.
        Вот что значит привык работать в windows'e.

"Проблема с XML в PHP под Apache"
Отправлено stan777 , 11-Май-05 18:05 
Всем спасибо, в принцыпе тему можно считать закрытой )