PHP的curl/libcurl连接https/SSL网站

在PHP中使用libcurl连接https/SSL网站,可以用以下代码测试是否连接畅通:

<?
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://passport.baidu.com/?login');
curl_setopt($curl, CURLOPT_POST, false);
$curl_res = curl_exec($curl);
echo $curl_res;
if (curl_errno($curl)) {
	echo 'Error: ' . curl_error($curl);
}
curl_close($curl);
?>

如果显示正常,则证明连接畅通。

如果显示“Error: couldn't connect to host”,则证明出错啦!

首先,进入phpinfo页面查看libcurl,看看curl字段是否有OpenSSL支持。如果没有,那就自己折腾PHP的安装吧!

然后,将libeay32.dll和ssleay32.dll拷贝到windows目录、system32目录;或者如果是命令行运行PHP,则拷贝到当前运行目录;或运行Apache运行PHP,则拷贝到当前运行Apache的目录。

重启Apache或者PHP,再次执行代码查看是否正常。

2 comments

  1. 辉仔 says:

    连接https,特别是模拟登录https。应该知道要post些什么过去,但https是加密的,我想这是curl登录https的难点

    1. creke says:

      https对于用户/脚本和目标服务器都是可见的。所以分析网站的话,在浏览器用分析工具就行了

Leave a comment