我在使用PHP curl时遇到了极大的困难。我尝试通过PHP curl打开一个网站:https://www.novaprostaffing.com/np/index.jsp,但是它一直显示以下错误:“连接到www.novaprostaffing.com时出现未知的SSL协议错误”。
我的函数如下:
我已经尝试了多种解决方法,包括:
我的函数如下:
function getUrl($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$buffer = curl_exec($ch);
if (!$buffer)
{
echo "cURL error number:" .curl_errno($ch);
echo " and url is $url and cURL error:" . curl_error($ch);
}
curl_close($ch);
return $buffer;
}
我已经尝试了多种解决方法,包括:
- 强制使用curl版本3
- 将
CURLOPT_SSL_VERIFYPEER
和CURLOPT_SSL_VERIFYHOST
设为0 - 检查是否在curl 7.34上。有人告诉我这个版本有bug,但我用的是curl 7.19.1
curl_setopt($ch, CURLOPT_SSLVERSION, 1);
进行设置。这将把版本设置为TLSv1(而不是SSLv1)。 - Emilie