Задать вопрос

Почему File_get_contents работает слишком медленно?

Использую file_get_contens для работы со STEAM, но почти сразу же столкнулся с очень интересной проблемой:

$_MYKEY = "93291431A019B3FD12444E8377901C45";
   $_MYID  = "76561198018795706";
      
       $Time = time();
       $Response = file_get_contents("http://steamcommunity.com/profiles/".$_MYID."/inventory/json/570/2");
       $Time2 = time();
       echo '1  ='.($iTime2 - $iTime)."<br></br>";

       $iTime = time();
       $Response2 = file_get_contents("http://api.steampowered.com/IEconItems_570/GetPlayerItems/v0001/?key=".$_MYKEY."&format=json&language=ru&steamid=".$_MYID);
       $iTime2 = time();
       echo '2  ='.($iTime2 - $iTime)."<br></br>";


В первом случае file_get_contens получает страницу в 1.5мб, время работы 1-3 секунды,
Во втором случае страница весит всего 300кб, но грузится она в разы дольше, от 5 и более секунд, в то время как в браузере открывается практически мгновенно. Как это исправить и есть ли альтернативный, более продуктивный способ получить нужную мне информацию?
  • Вопрос задан
  • 3610 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
curl и multy_curl.

Можете через wireshark и т.д. промониторить что где тупит.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
nazarpc
@nazarpc
Open Source enthusiast
Попробуйте отправить заголовок (скорее всего можно через context добавить):
Connection: closed
Браузеры с этим нормально дружат, а file_get_contents() висит до таймаута пока не отвалится.
Можно попробовать curl, через сокет отправить запрос.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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