Я пишу скрипт, который работает как бот, и я пытаюсь проанализировать определенные данные из URL.Я делаю «основной» запрос с curl и Dom Element для разбора веб-страницы, однако я не нашел решения, чтобы проверить, есть ли у сайта действительный ssl-сертификат с Curl.Вместо этого я делаю это с fopen следующим образом:
$stream = stream_context_create (array("ssl" => array("capture_peer_cert" => true)));
$read = fopen($url, "rb", false, $stream);
$cont = stream_context_get_params($read);
$var = ($cont["options"]["ssl"]["peer_certificate"]);
$result = (!is_null($var)) ? true : false;
if($result == true){
$returnData["ssl"] = 1; // index 7
} else {
$returnData["ssl"] = 0; // index 7
}
Теперь иногда fopen не будет работать правильно и выдает следующую ошибку:
fopen(http://): failed to open stream: operation failed
Так что я либо хочу проверитьесли сайт использует SSL с curl или, по крайней мере, вернет пустую строку при возникновении этой ошибки, а затем продолжит работу с остальной частью сценария, поскольку данные должны быть отправлены обратно в ajax в конце сценария.Если нет - Ajax потерпит неудачу, и я верну 504, потому что скрипт выполняется слишком долго.