Я использовал get_headers, чтобы проверить, существует ли файл на 5 интерфейсных серверах.
Но какой-то файл открывается, для другого он показывает ошибку тайм-аута соединения.
stream_context_set_default( [
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false,
],
]);
$prod3 = 'https://prod3.com/Script/log/';
$prod4 = 'https://prod4.com/Script/log/';
$prod5 = 'https://prod5.com/Script/log/';
$prod6 = 'https://prod6.com/Script/log/';
$prod7 = 'https://prod7.com/Script/log/';
$exists_path = "";
if (strstr(current(get_headers($prod3.$file_name)), "200"))
{
$exists_path = "prod3.com";
}
elseif (strstr(current(get_headers($prod4.$file_name)), "200")){
$exists_path = "prod4.com";
}
elseif (strstr(current(get_headers($prod5.$file_name)), "200")){
$exists_path = "prod5.com";
}
elseif (strstr(current(get_headers($prod6.$file_name)), "200")){
$exists_path = "prod6.com";
}
elseif (strstr(current(get_headers($prod7.$file_name)), "200")){
$exists_path = "prod7.com";
}
else
{
$exists_path = "";
}
if ($exists_path != "") {
$pageText = file_get_contents("https://".$exists_path."/Script/log/".$file_name);
echo nl2br($pageText);
} else {
echo -1;
}
Когда я использую URL-адрес https с именем файла в браузере, он загружает данные, но в приведенном ниже коде показана ошибка тайм-аута соединения, даже если файл существует по этому пути.
Когда я использую тот же код с моего сервера разработки, он работает.
Может кто-нибудь дать мне идею разрешить это дело?