fopen("http://www.example.com/", "r"); - скрипт возвращает HTTP ошибку 404

Гриша К.

Новичок
fopen("http://www.example.com/", "r"); - скрипт возвращает HTTP ошибку

Здравствуйте.

Для открытия удаленного файла по протоколу http,
использую к примеру следующий скрипт на локальном компьютере (PHP 4.4.2, директива в php.ini 'allow_url_fopen = on', отключен брандмауэр и антивирус):
PHP:
<?php
$handle = fopen("http://www.example.com/", "r");
echo $handle;
?>
В результает запуска данного скрипта, браузер возвращает HTTP ошибку 404. Ошибся, не 404 ошибку, номер ее не знаю, в exploler пишет "Невозможно отобразить страницу ... Не удается найти сервер или ошибка DNS"
Ранее стоял PHP 4.3.0, данный срипт возвращал соответвенно true (Resource id #2), т.е. работал.
На хостинге данный скрипт также работает (PHP 4.3.9).

Возможно я что-то упсутил, но об этом незнаю, если вы предполагаете в чем может быть причина данной ошибки, подскажите пожалуйста.
 

Dreammaker

***=Ф=***
Обновится нужно скорее всего.

Был такой баг сам него наступал, возможно и в этой ситуации причина в этом.

update: вспомнил, не совсем такой - апач валился, но может здесь тоже ситуация в баге.
 

Гриша К.

Новичок
Dreammaker, спасибо за совет.
Попробую обнавится, поставлю PHP 5, результат напишу.
 

Dreammaker

***=Ф=***
Вполне хватит до последних версий 4 ветки. Да простят меня те кто за прогресс в php-мире :)
 

Гриша К.

Новичок
Установил PHP 4.4.4, и fopen() с удаленными файлами по HTTP протоколу стала работать.
Наверное это действительно баг в версии PHP 4.4.2.

(Думал, что 4.4.2 последняя, поэтому хотел поставить PHP 5, но на хостинге всеравно 4.3.9, поэтому в 5 версии нет необходимости).

Dreammaker, спасибо, ваш совет (предположение) помог ;)
 

boombick

boombick.org
Гриша К.
может лучше было бы использовать file_get_contents или CURL?
 

Гриша К.

Новичок
boombick, спасибо за ответ.
Я использую функцию fopen(), для того чтобы открыть csv файл, пройтисть по его строкам, найти нужную строку, и из нее взять нужное значение.
А например функция file_get_contents, считывает файл в одну строку, поэтому предполагаю что в таком случае будет неудобно извлекать нужную мне информацию.
О CURL слышу первый раз, на php.net, есть документация на русском, почитаю, спасибо за информацию.
 

Гриша К.

Новичок
Franzusow, спасибо за ответ.
Никогда не пользовался функцией file(), сейчас посмотрел, вобщем-то это удобный вариант, - каждая строка представлена в виде элемента массива, единственное что в документации написано, что эта функция не является безопасной по отношению к бинарным файлам,
а fopen() - как я понял, безопасна (режим 'b' - по умолчанию),
в документации написано, что для максимальной переносимости разработчики PHP рекомендуют всегда использовать бинарный режим для fopen(), для лучшей переносимости,
и так как собственных знаний по этой теме у меня недостаточно, лучше я буду использовать fopen().
Если есть какие-то противоречатия, по моему ответу, напишите пожалуйста (возможно я зря отказываюсь от функции, которая небезопасна к бинарным файлам).
 

Гриша К.

Новичок
uliss, нашел небольшое определение бинарного файла - двоичная строка символов 10110
Открыл csv файл в блокноте, вижу текст, предположительный вывод, файлы csv - текстовые, не бинарные.
Если я правильно ответил, то нет необходимости отказываться например от функции file().

admin, спасибо за ссылку. Мне про CURL писали, я почитал документацию, и непонял чем в данно случае (открытие csv файла), лучше например использовать curl.
 
Сверху