Fórum Root.cz
Hlavní témata => Server => Téma založeno: aeqwqeq 11. 08. 2018, 13:20:52
-
Zdravim,
cez file_get_contents nasa webova aplikacia stahuje data zo vzdialenych serverov. Jeden zo zdrojov je problematicky. Data sa stiahnu v podstate okamzite ale ukoncenie spojenia nikdy neprebehne. Musi nastat az timeout (60s) aby spojenie bolo ukoncene.
Co to moze sposobovat? Predpokladam chybu na druhej strane. Ale cez wget/curl to bezproblemov funguje.
(https://pixhost.to/show/110/78270402_screenshot.png)
-
(https://t22.pixhost.to/thumbs/110/78270402_screenshot.png) (https://pixhost.to/show/110/78270402_screenshot.png)
-
Tak použij modul Curl, pokud ti nevyhovují bohaté možnosti nastavení file_get_contents() přes stream_context_create().
-
Doporučuji použít GuzzleHttp. Osobně celkem pěním, když vidím, že file_get_contents něco tahá ze vzdáleného serveru.
-
Doporučuji použít GuzzleHttp. Osobně celkem pěním, když vidím, že file_get_contents něco tahá ze vzdáleného serveru.
Guzzle používá Curl, kterému stačí nastavit správné parametry.
-
Neni to kvuli Keep-Alive?
http://php.net/manual/en/context.http.php#114867
-
Pokud by příčinou byl Keep-Alive, zkusil bych tohle:
<?php
$context = stream_context_create([
'http' => [
'protocol_version' => 1.1,
'header' => [
'Connection: close',
],
],
]);
$data = file_get_contents('https://www.example.com/', null, $context);