"Permission denied" в открытии удалённого файла, доступного для чтения.

  • Автор темы VETERINAR
  • Дата начала

VETERINAR

Guest
"Permission denied" в открытии удалённого файла, доступного для чтения.

Здравствуйте! Прошу мне помочь. При написании простейшего парсера, я столкнулся с проблемой. При открытии на чтение удалённого файла вылетает ошибка "Permission denied". Никак не могу понять причину ошибки. Права на чтение есть, в коде вроде тоже ошибок нет (Перелопатил кучу литературы и везде код совпадает с моим). Помогите пожалуйста!

Вот код:

PHP:
<?php
Error_Reporting(E_ALL & ~E_NOTICE);
// Регистрируем класс "проект"
class project {
    var $title;   
    var $link; 
    var $guid;  
    var $pubDate;  
    
    function project ($aa) {
        foreach ($aa as $k=>$v)
            $this->$k = $aa[$k];
    }
}

function readDatabase($filename) {
    // читать xml БД проектов
    $data = implode("",file($filename));
    $parser = xml_parser_create();
    xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);
    xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
    xml_parse_into_struct($parser,$data,$values,$tags);
    xml_parser_free($parser);

    // цикл по этим структурам
    foreach ($tags as $key=>$val) {
        if ($key == "item") {
            $molranges = $val;
            // каждая пара вхождений массива это нижняя и верхняя
            // границы диапазона для определения каждого проекта
            for ($i=0; $i < count($molranges); $i+=2) {
                    $offset = $molranges[$i] + 1;
                $len = $molranges[$i + 1] - $offset;
                $tdb[] = parseMol(array_slice($values, $offset, $len));
            }
        } else {
            continue;
        }
    }
    return $tdb;
}

function parseMol($mvalues) {
    for ($i=0; $i < count($mvalues); $i++)
        $mol[$mvalues[$i]["tag"]] = $mvalues[$i]["value"];
    return new project($mol);
}

$db = readDatabase("http://www.free-lance.ru/rss/projects.xml");
//print_r($db);
while (list ($key, $val) = each ($db)) {
    while (list ($key2, $val2) = each ($val)) {
 $$key2=$val2;
}
    echo "<H1>$title</H1><H2>$link</H2>$guid<H3></H3><H4>$pubDate</H4><br><br><br><br>";

}

php?>

А если вместо удалённого файла писать локальный, то всё работает... Чуть веру в жизнь не потерял. Буду очень благодарен за помощь.
 

hermit_refined

Отшельник
Лучше всё-таки error_reporting(E_ALL), и не гениальное implode("",file($filename)), а file_get_contents($filename).

По существу же - у меня этот кусок куда вполне себе работает. Приведите полное сообщение об ошибке.
 

VETERINAR

Guest
Спасибо, я понял причину ошибки. Проблема в хостинге.
 
Сверху