Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: В php зависает fopen  (Прочитано 7089 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Megabotan
Участник

ru
Offline Offline

« : 30-07-2007 08:34 » 

Если открывать для чтения в PHP с помощью функции fopen файл с удалённого сервера (по протоколу http), то в случае недоступности сервера весь скрипт PHP подвисает.
Не помогает даже задание таймаута выполнения скрипта: set_time_limit(1).
Хотелось бы сделать так, чтобы скрипт ошибку выдавал в этом случае.
А то, так ждёшь минуту, а потом появляется "The page cannot be displayed"
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 30-07-2007 16:23 » 

Megabotan, на самом деле никакой файл на удаленном сервере не открывается, а лишь скачивается то, что есть по данной ссылке. Все недостатки точно теже: невозможность разрешить DNS, нет коннекта, медленная передача, разрыв связи и т.д.

set_time_limit не катит, т.к. это операция ввода-вывода и у нее собственный ограничитель: http://ru2.php.net/manual/ru/ref.info.php#ini.max-input-time

Если на сервере настроен safe_mode, то управлять временем из скрипта не получится.

О работе с удаленными файлами написано здесь: http://ru2.php.net/manual/ru/features.remote-files.php
Ремомендую читать комментарии в конце страницы - там часто бывают решения или описания проблем.

Для работы с инет-ресурсами рекомендуется CURL ( http://ru2.php.net/manual/ru/ref.curl.php ).
« Последнее редактирование: 30-07-2007 16:26 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Megabotan
Участник

ru
Offline Offline

« Ответ #2 : 30-07-2007 17:59 » 

Спасибо. Я CURL использовал. Это здесь правда больше подходит.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines