# первый запрос
$resource = fopen($url, 'r');
p($http_response_header);
# получение nonce
preg_match('/nonce="([^"]+)"/', $http_response_header[1], $matches);
$nonce = $matches[1];
# считаем request для digest
$digest = calculateDigest($username, $password, $realm, $nonce, $uri, $method, $qop, $nc, $cnonce);
// Настройки HTTP-заголовков
$options = [
'http' => [
'method' => 'GET',
'header' => "Authorization: Digest username=\"{$username}\", realm=\"{$realm}\", nonce=\"{$nonce}\", uri=\"{$uri}\", response=\"{$digest}\", opaque=\"{$opaque}\", qop={$qop}, nc={$nc}, cnonce=\"{$cnonce}\"",
],
];
# второй запрос
$resource = fopen($url, 'r', false, stream_context_create($options));
p($http_response_header);
// Чтение данных из файла (URL)
while (!feof($resource)) {
$response = fgets($resource);
}
// Закрытие ресурса
fclose($resource);
p($response);
запускаю в браузере и вижу такую картину:
Warning: fopen(http://myip/cgi-bin/mediaFileFind.cgi?action=factory.create): Failed to open stream: HTTP request failed! HTTP/1.1 401 Unauthorized in C:\OSPanel\domains\cam.local\uploader.php on line 54
Array
(
[0] => HTTP/1.1 401 Unauthorized
[1] => WWW-Authenticate: Digest realm="Login to bd72fbb2e0734a3cb18d4cb40504cdf0", qop="auth", nonce="2142598378", opaque="1a067f2162e6693bed2d111d38af7bee229a316f"
[2] => Connection: close
[3] => CONTENT-LENGTH: 0
)
Array
(
[0] => HTTP/1.1 200 OK
[1] => X-XSS-Protection: 1;mode=block
[2] => X-Frame-Options: SAMEORIGIN
[3] => Content-Security-Policy: script-src 'self' 'unsafe-inline' 'unsafe-eval'
[4] => Strict-Transport-Security: max-age=604800; includeSubDomains
[5] => Content-type: text/plain;charset=utf-8
[6] => CONNECTION: close
[7] => CONTENT-LENGTH: 19
)
Но если я обновлю страницу несколько раз, то увижу такую картину:
...
[5] => Content-type: text/plain;charset=utf-8
[6] => CONNECTION: close
[7] => CONTENT-LENGTH: 19
)
result=2134173032
result - это как раз и есть вывод $response. То есть по какой-то причине result не отображается. Как понять, по какой причине и устранить её?