|
|
|
| Подскажите, как открыть файл на каком-либо сайте для чтения?
Я делаю так
$fp = fopen("http://site.com/file.txt", "r");
$file = fread($fp, 100000);
|
Но мне говорят, что удаленный компьютер отверг запрос на подключение. На каком бы сайте я не пробовал открывать файл. | |
|
|
|
|
|
|
|
для: WebTech
(03.05.2007 в 16:06)
| | Попробуйте конструкцию
<?php
$file = file_get_contents("http://site.com/file.txt");
?>
|
Ответ тот же? | |
|
|
|
|
|
|
|
для: cheops
(04.05.2007 в 14:22)
| | Да, так все получилось!
Спасибо большое. | |
|
|
|
|
|
|
|
для: cheops
(04.05.2007 в 14:22)
| | Упс! На хостинге не работает.
Показывает такую ошибку
Warning: file_get_contents(http://www.ixbt.com/export/articles.rss): failed to open stream: Operation not permitted in /home/t/terra-test.h18.ru/WWW/admin/news/download_rss.php on line 126
allow_url_fopen включено. Хостинг бесплатный, Агава.
В чем может быть дело? | |
|
|
|
|
|
|
|
для: WebTech
(05.05.2007 в 16:43)
| |
<?php
$pu = parse_url("http://www.ixbt.com/export/articles.rss");
$path = isset($pu['query']) ? $pu['path'] . "?" . preg_replace("/([a-z0-9_-]+)=([^&]+)/e", "'\\1='.urlencode('\\2')", $pu["query"]) : $pu['path'];
$host = $pu['host'];
$fp = fsockopen($host, 80) or die("Невозможно соединиться с " . $host . ":80");
fwrite($fp, "HEAD " . $path . " HTTP/1.0\r\n" .
"Host: " . $host . "\r\n" .
"User-Agent: PHP/" . PHP_VERSION . "\r\n" .
"\r\n");
$buffer = fgets($fp, 1024);
$status_code = (int) substr($buffer, strpos($buffer, " ") + 1);
$success = array(200, 302);
if(in_array($status_code, $success))
{
echo("Файл доступен.");
}
else
{
echo("Ошибка. Status code: " . $status_code);
}
?>
|
Что выдает? | |
|
|
|
|
|
|
|
для: Unkind
(05.05.2007 в 21:30)
| | Уж коль скоро Вы применили parse_url - вместо fsockopen($host, 80) стоит писать
fsockopen($host, isset($pu['port'])? $pu['port'] : 80)
| не правда ли? :) | |
|
|
|
|
|
|
|
для: Trianon
(06.05.2007 в 00:42)
| | не правда ли? :)
Возможно. | |
|
|
|
|
|
|
|
для: WebTech
(05.05.2007 в 16:43)
| | >allow_url_fopen включено. Хостинг бесплатный, Агава.
Хм... а точно директива allow_url_fopen включена? На бесплатных хостингах как раз очень часто её отключают? | |
|
|
|
|
|
|
|
для: cheops
(06.05.2007 в 14:34)
| | Директива включена, я смотрел phpinfo().
Выяснилось, что на бесплатном хостинге закрыты все исходящие соединения :-( Непонятно только зачем 80-й порт закрыт. Я понимаю, 25-й, например...
Ладно, тем не менее, спасибо всем за помощь :-) | |
|
|
|