Задать вопрос
@Helen-Elena

Время ответа сервера с file_get_contents?

на сайте wordpress использую file_get_contents и cURL для получения данных из яндекс метрики и соц сетей, в json, эти скрипты и в шаблоны темы, и в function, и отдельными скриптами использовала, при их использовании время ответа сервера ~2700-4000 мс, без них ~250 мс, какой аналог есть или, что можно сделать, чтоб сократить время отв. сервера при их использовании? хостинг не бесплатный.
  • Вопрос задан
  • 250 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 1
@Helen-Elena Автор вопроса
спасибо artem78 благодаря ему всё реализовала через cron)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@rPman
Пользуйтесь методами curl_... где вы сможете проконтролировать гораздо больше, если совсем хочется счастья, берите любую http socket библиотеку (например из react окружения).

Постарайтесь выяснить, откуда появляются задержки, например локально провайдеры могут создавать их специально или нет (у меня были внезапные проблемы с php curl_multi), которых не было в обычном curl_... и только у конкретного провайдера в случайные часы суток).
Ответ написан
Комментировать
mosesfender
@mosesfender
Меланхолик, параноик, падал с коек
Создаётся объект стрим-контекста из массива-опций, и третьим параметром в туда встрамляется.
$opts = array('http' =>
    array(
        'method'  => 'GET',
        'timeout' => 120 
    )
);

$context  = stream_context_create($opts);

$result = file_get_contents('http://example.com/get.php', false, $context);


Ускорить не ускорит, но позволит дождаться ответа или не ответа.
Ответ написан
dimasmagadan
@dimasmagadan
про кэширование вам в комментах к ответу написали.
но там относительно php, а у вас WordPress - можно использовать Transients API. Оно именно для этого и придумано.

готовый код добавлять не буду, но очень наглядно и с примерами есть в официальной документации
https://codex.wordpress.org/Transients_API
или тут
https://wpmag.ru/2015/transient-cache-wordpress/
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы