fopen для файла с параметром

Статус
В этой теме нельзя размещать новые ответы.

disa_nsk

Новичок
fopen для файла с параметром

суть проблемы:

есть ссылка http://www.site.ru/file.jsp?id=55555 с разными id, при открытии в браузере выдается содержимое разных xml-файлов в зависимости от id
хотелось бы получить это содержимое в виде текста, для последующей обработки

на это:

<?php
.......
.......
$url = "http://www.site.ru/file.jsp?id=55555";
$handle = fopen($url, "rt");
$contents = stream_get_contents($handle);
fclose($handle);
echo $contents;
?>

выдается сообщение:
Warning: fopen(http://www.site.ru/file.jsp?id=55555): failed to open stream: Bad file descriptor in C:\test.php on line 5
Fatal error: Call to undefined function: stream_get_contents() in C:\test.php on line 6

как быть?
 

disa_nsk

Новичок
FireNet
PHP Version 4.3.11

а режим не знаю какой, из примеров взял, вроде как для получения не в бинарном виде, а в виде текста
это не главное, "r" - тоже не помогает
 

Gorynych

Посетитель PHP-Клуба
1. Что за пару "rt" Вы указываете в качестве в качестве режима открытия файла?

2. Вам выдается предупреждение о том, дискриптор не создался, потому что так как Вы хотели файл не открылся.

3. Судя по всему в вашей версии PHP функция stream_get_contents не определена, какая у Вас версия? Что написано в мануале по поводу http://ru.php.net/stream_get_contents и не проще ли в вашем случае посмотреть на аналогичную ей функцию (указана в мануале, поэтому название не пишу)?
 

Фанат

oncle terrible
Команда форума
Во-первых, "файлов с параметрами" не бывает. Научитесь отличать урл от файла.
Во-вторых, а что - без параметра работает нормально? Научитесь сначала локализовывать проблему, а потом уже развивать в себе талант беллетриста.
 

akd

dive now, work later
Команда форума
FireNet, Gorynych, цитата из мануала [m]fopen[/m]:

... Windows offers a text-mode translation flag ('t') which will transparently translate \n to \r\n when working with the file. In contrast, you can also use 'b' to force binary mode, which will not translate your data. To use these flags, specify either 'b' or 't' as the last character of the mode parameter. ...
 

Фанат

oncle terrible
Команда форума
на сём давайте тему про режимы чтения закроем.

disa_nsk
пользовался ли ты гуглем перед тем, как задать своё вопрос на форуме?
 

Gorynych

Посетитель PHP-Клуба
akd
да я-то понимаю, но мне хотелось, чтобы человек подумал, как именно он пытается открыть сетевой ресурс
 

disa_nsk

Новичок
Фанат
Ну извините, я я даже не новичок, только пробую, без параметра выдается xml-файл с таким содержимым:
<?xml version="1.0" encoding="UTF-8" ?>
<xml />

то есть без нужного содержимого

а о будущем белетриста даже и не мечтал
 

Фанат

oncle terrible
Команда форума
disa_nsk
очень хорошо.
вот и начни пробовать. с гугля.
если у тебя возникают какие-то проблемы, то первым делом идёшь в гугль и ищешь похожие.
в твоём случае, в гугль надо писать сообщение об ошибке, без имен файлов, конечно.
 

FireNet

Новичок
а если так?

PHP:
$contents = '';  
$url = "http://www.site.ru/file.jsp?id=55555";
$handle = fopen($url, "r");
while(!feof($handle)) {   
  $contents. = trim(fgets($handle))."\r\n";
} 
fclose($handle);
забыл trim() :)
 

Gorynych

Посетитель PHP-Клуба
почти offtopic 2 tony2001

вот давно хочу понять одну вещь: возможность открывать файлы по сетевым протоколам через fopen() это все таки благо или зло? Может все же правильнее использовать соответсвующее API?
 

FireNet

Новичок
Используй CURL и сокеты. Походу дела линк битый, и по этому fopen
пытался его открыть, пока не наступил timeout
 

Slavicos

Новичок
Попробуй глазами увидеть в дереве каталогов файл под именем "http://www.site.ru/file.jsp?id=55555"
 

disa_nsk

Новичок
Slavicos
доступа туда нет, да и как я подозреваю там есть только файл file.jsp который генерит xml-файл в зависимости от id
 

Фанат

oncle terrible
Команда форума
тема закрыта, поскольку правильный ответ уже дан, но при этом набежали профессора кислых щей со своими гениальными советами.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху