检查SSL证书Php Fopen和卷曲

时间:2018-10-09 18:22:41

标签: php ssl curl fopen

我正在编写一个类似于机器人的脚本,并且尝试从URL中解析出某些数据。 我正在使用curl和一个用于解析网页的Dom元素执行“主要”请求,但是我没有找到一种解决方案来检查该站点是否也具有带有Curl的有效ssl证书。 相反,我是用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 

因此,我想检查站点是否使用带有curl的SSL或发生此错误时至少返回一个空字符串,然后继续执行脚本的其余部分,因为需要在末尾将数据发送回ajax。剧本。如果不是,则Ajax将失败,并且由于脚本运行时间过长,我会收到504。

0 个答案:

没有答案