Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2019, 15:16   #1
Evgenich
Новичок
Джуниор
 
Регистрация: 08.04.2019
Сообщений: 2
Вопрос file_get_contents и timeout

Доброго всем времени суток.
Я не программист, поэтому пишу сюда. Помогите пожалуйста,
нужно поставить timeout в функцию file_get_contents.
Где я ошибся?
Код:
<?php
  // Карта сайта из Xmap
  $xmap_url="https://pro-chepetck.ru/sitemap-xml";
  // Получаем содержимое этой страницы
  $xml_code = file_get_contents($xmap_url);
  'timeout' => 300
  // Записываем это содержимое в файл sitemap.xml
  if (file_put_contents($_SERVER['DOCUMENT_ROOT'].'/sitemap.xml', $xml_code)) {
    $xml_code = file_get_contents('/sitemap.xml');
    $xml_code = str_replace ("</url>", "</url><br>", $xml_code);
    echo "<p>sitemap.xml успешно обновлен!</p>\n";
  } else echo "<p>Ошибка!</p>\n";
?>
______________________
Используйте тег [CODE] (кнопка [CODE] в форме сообщения) при вставке кода на форум. Подробнее в FAQ

Последний раз редактировалось Serge_Bliznykov; 08.04.2019 в 16:01.
Evgenich вне форума Ответить с цитированием
Старый 08.04.2019, 15:59   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Гугл говорит, что ее таймаут зависит от default_socket_timeout в настройках РНР https://stackoverflow.com/a/10236480/964478

Обычно берут библиотеки типа curl, guzzle когда надо больше контроля.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 08.04.2019, 16:04   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Код:
  $xml_code = file_get_contents($xmap_url);
  'timeout' => 300

Код:
$ctx = stream_context_create(array( 
    'http' => array( 
        'timeout' => 300
        ) 
    ) 
); 
$xml_code = file_get_contents($xmap_url, 0, $ctx);
взято ТУТ
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.04.2019, 16:06   #4
Evgenich
Новичок
Джуниор
 
Регистрация: 08.04.2019
Сообщений: 2
По умолчанию

Serge_Bliznykov, спасибо огромное) Все работает как надо)
Evgenich вне форума Ответить с цитированием
Старый 08.04.2019, 16:08   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

По ссылке выше еще пишут, что оно может работать не так, как ожидалось, потому что
Цитата:
default_socket_timeout, stream_set_timeout, and stream_context_create timeout are all the timeout of every line read/write, not the whole connection timeout
Цитата:
if the site doesn't exist (won't resolve or no web server behind it), then file_get_contents() will ignore read timeout because it hasn't even timed out connecting to it yet.
так что таки лучше взять curl/guzzle.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 08.04.2019 в 16:11.
Alex11223 вне форума Ответить с цитированием
Старый 08.04.2019, 16:09   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

всегда пожалуйста!

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
так что таки лучше взять curl/guzzle.
скорее всего Вы правы.
Но, с другой стороны, раз автора устраивает результат, то можно пока остановиться на нём. Пока не начнутся проблемы, для решения которых придётся использовать более подходящий инструмент.

Последний раз редактировалось Serge_Bliznykov; 08.04.2019 в 16:11.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
file_get_contents узнать редирект урл UKRtortik PHP 4 10.07.2014 04:31
Проблемы с file_get_contents() Fellics{новичок} PHP 1 09.02.2013 15:19
php ругается на file_get_contents Pingvinenok_Lolo PHP 10 23.03.2012 20:06
file_get_contents DimmoS Помощь студентам 1 12.08.2011 13:15
аналог file_get_contents() A_r_r_a_y PHP 7 07.07.2010 17:26