【发布时间】:2014-01-16 06:01:50
【问题描述】:
我只是想知道是否有办法检查加密图像是否存在于 https。
我正在使用下面的代码来检查图像是否存在。如果是,它将返回200,如果不是,它将返回404。但这仅适用于不包含 https 的图像 URL。
function exists_url($uri){
$ch = curl_init($uri);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_exec($ch);
return $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
}
如果我尝试验证此 url (https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcTup5KSMveqkgrDKZR6p-0ANhPkJ7srbJOlKR78DUqqh85I_3MUrw),它会给我一个 0 而不是 200 或 404 的结果。
我曾想过使用getimagesize() 函数来完成这项任务。但即使这个功能也只适用于不通过 HTTPS 发送的图像。
【问题讨论】:
-
第一个图像没有以任何方式加密。 URL 的“加密”部分可能指的是 HTTPS(也称为 SSL/TLS)的连接方法。其次,尝试
curl_error()从 curl 中获取正确的错误消息。 -
那你的解决方案是?
-
在
curl_exec($ch)之后执行echo 'Curl error: ' . curl_error($ch);并回发错误消息。 -
这是我收到的错误“SSL 证书问题,请验证 CA 证书是否正常。详细信息:错误:14090086:SSL 例程:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed0”