一个简陋的支持HTTPS的PHP CURL封装函数

2013-4-17更新

请参看最新一篇《详解使用PHP CURL访问HTTPS》

--------------------------------------------------------------------------------------------------------------------

标题有点长,其实就是用来向https服务器post数据

function curlPost($url, $data, $timeout = 30) { $ssl = substr($url, 0, 8) == "https://" ? TRUE : FALSE; $ch = curl_init(); $opt = array( CURLOPT_URL => $url, CURLOPT_POST => 1, CURLOPT_HEADER => 0, CURLOPT_POSTFIELDS => (array)$data, CURLOPT_RETURNTRANSFER => 1, CURLOPT_TIMEOUT => $timeout, ); if ($ssl) { $opt[CURLOPT_SSL_VERIFYHOST] = 1; $opt[CURLOPT_SSL_VERIFYPEER] = FALSE; } curl_setopt_array($ch, $opt); $data = curl_exec($ch); curl_close($ch); return $data; } $data = curlPost('https://ssl.test.com', array('p'=>'hello')); echo ($data);

-----------------------------我是分割线--------------------------------

其实这是告诉服务器不进行SSL认证,并不是真的走HTTPS

如果要真正使用HTTPS,那么需要提供CA证书

上面关于SSL部分按照如下设置:

CURLOPT_SSL_VERIFYPEER 设置为 true ,说明进行SSL证书认证
CURLOPT_SSL_VERIFYHOST 设置为 2, 说明进行严格认证
CURLOPT_CAINFO 设置为证书的路径


你可能感兴趣的:(一个简陋的支持HTTPS的PHP CURL封装函数)