|
|
|
| Пытаюсь разобраться с примером "Загрузка курса валют с сайта ЦентроБанка", который находится по адресу:
http://www.softtime.ru/scripts/valute.php
Ошибка возникает при попытке открыть интернетовскую страничку.
Код:
$link = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=$date";
$fd = fopen($link,"r");
|
Ошибка:
Warning: fopen(http://www.cbr.ru/scripts/XML_daily.asp?date_req=19/06/2006): failed to open stream: Bad file descriptor in c:\appserv\www\site\index2.php on line 49
Проверил в php.ini:
allow_url_fopen = On
Подскажите, пожалуйста, в чём загвоздка?
PS WinXP SP2+Apache 1.3.33+PHP 4.3.10 (AppServ 2.4.3)\
PPS пробовал напрямую вставить URL в IE. На экране появляются нужные данные. | |
|
|
|
|
|
|
|
для: sLim80
(19.06.2006 в 14:37)
| | Только что проверил твой код:
$link = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=$date";
$fd = fopen($link, "r");
if(!$fd){
$retstr="Not Open Link!<BR>\r\n";
}else{
while(!feof($fd))$retstr.=fgets($fd, 1024);
fclose($fd);
}
|
Все работает. Смотри настройки хоста. | |
|
|
|
|
|
|
|
для: sLim80
(19.06.2006 в 14:37)
| | А не может это быть связано с работой через прокси сервер?
Может нужно предварительно прокси сконфигурировать? | |
|
|
|
|
|
|
|
для: sLim80
(19.06.2006 в 15:12)
| | Если прокси стоит, то конечно надо через сокеты открывать с указанием прокси.
Тут недавно тема про прокси и сокеты детально расписана была, поиск задай по слову: proxy-autorization | |
|
|
|
|
|
|
|
для: sLim80
(19.06.2006 в 14:37)
| | У меня похожая проблема, только никакого прокси у меня нет.
На fopen вылетает апач. Что посоветуете? allow_url_fopen тоже установлен в On. Локальный сервер. Денвер.
P.S.
Если открывать какой-нибудь текстовый файл на винте, то всё прекрасно открывается и читается. | |
|
|
|
|
|
|
|
для: Хулиган
(15.07.2006 в 04:14)
| | А firewall не может закрывать доступ для Apache в интернет? | |
|
|
|
|
|
|
|
для: cheops
(15.07.2006 в 10:58)
| | думаю, что нет. У файрвола (BlackIce) настройки весьма либеральные. Пробовал также и с отключеным файрволом. Результат тот же.
Пробовал ещё варианты с открытием через $fd = fsockopen ($link, 80, $errno, $errstr, 30);
Результат:
Warning: fsockopen(): php_network_getaddresses: gethostbyname failed in z:\home\mysite.ru\www\main.inc on line 34
Warning: fsockopen(): unable to connect to http://www.cbr.ru/scripts/XML_daily.asp?date_req=15/07/2006:80 in z:\home\mysite.ru\www\main.inc on line 34
Пробовал запускать скрипт не на локальном а на удалённом сервере jino-net.ru (думал, может у меня с настройками что-то) но опять никакого результата.
Даже просто скопировать copy ( $link, 'aaa.txt'); не удается.
Поэтому закономерный вопрос: тот скрипт в примерах в принципе работоспособен? Его проверяли? И предназначена ли fopen для открытия удалённых файлов? | |
|
|
|
|
|
|
|
для: Хулиган
(15.07.2006 в 12:29)
| | Сокету в качестве перевого аргумента нужно передавать только адрес сайта, т.е в $link должна быть только строка "www.cbr.ru", параметры и путь указываются уже в GET-запросе. | |
|
|
|
|
|
|
|
для: cheops
(15.07.2006 в 13:51)
| | Передаю www.cbr.ru - страница замерзает на минуту, а потом сообщение, что страница недоступна :(
Сделал иначе: обычное win32 приложение с URLDownLoadToFile раз в день скачивает страницу с банковского сайта, парсит и пишет в текстовый файл, затем файл по ftp загоняет на сервер. А index.php просто читает этот файл valuta.txt. Проще, надёжней, и быстрее. | |
|
|
|