Время ожидания PHP fopen?

любая идея, почему fopen будет тайм-аут для файла, если он на моем сервере, и я знаю, что URL-адрес верен?

обновление: извините, я должен был упомянуть об этом в php. код:

fopen($url, 'r'); 

Он работает, если я помещаю относительный путь для файла, но не если $ url – это url на моем сервере (но он работает для google.com). Спасибо за помощь.

Ответ Алайтника был прав. Проблема возникает только при доступе к моим собственным файлам сервера через интерфейс ethernet. Как я могу это исправить? Мне нужно иметь доступ к файлу из интерфейса ethernet, потому что URL-адрес загружается динамически (он создается из wordpress cms, поэтому URL-адрес не существует как файл на моем сервере)

вы можете использовать ini_set ('default_socket_timeout', 2); перед открытием fopen $ url. Это фактически установило тайм-аут соединения по умолчанию без ответа. Stream_set_timeout устанавливает тайм-аут потока, который устанавливается через функции fopn или открытия сокета. Попробуйте это может быть полезно для вас.

Похоже, что вы пытаетесь загрузить файл с вашего собственного сервера с использованием протокола HTTP из программы, запущенной на том же сервере?

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

  1. сервер действительно занимает много времени, чтобы отправить ответ, или
  2. TCP-соединение блокируется

Например, может быть, что ваши локальные правила брандмауэра разрешают доступ только к www.example.com если эти запросы поступают из интерфейса ethernet, но локальное соединение будет пытаться проходить через интерфейс loopback.

возможно, ваш «allow_url_fopen» установлен в «Выкл.», проверьте ваш файл php.ini или phpinfo ()

Если вы пытаетесь получить HTML-код URL-адреса, я предлагаю использовать curl вместо fopen.

fopen лучше всего использовать с локальными файлами, потому что он не «знает», как справляться с особенностями сетевого ресурса.

Проверьте комментарии к документации по fopen . Там много золота.

Принял меня, чтобы решить это, но здесь я нашел его, благодаря Алнитаку. Открытие файла с локальным хостом в URL-адресе вместо имени хоста было для меня трюком.