CURL如何获取HTTPS协议的状态码
<br />$curl = curl_init();<br />$url='https://';<br />curl_setopt($curl, CURLOPT_URL, $url); <br />curl_setopt($curl, CURLOPT_HEADER, 1); <br />curl_setopt($curl,CURLOPT_NOBODY,true); <br />curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); <br />$data = curl_exec($curl); <br />echo curl_getinfo($curl,CURLINFO_HTTP_CODE); <br />curl_close($curl); <br />
我用这种方法打印出http的状态码没问题,但是换成https协议一直输出0. 请问https应该怎么获取
——解决思路———————-
https 請求時要加上
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,(本文来)源gaodaimacom搞#^代%!码&网(
搞gaodaima代码
false); // 跳过证书检查
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在
<br /><?php<br />/** curl 获取 https 请求<br />* @param String $url 请求的url<br />* @param Array $data 要發送的數據<br />* @param Array $header 请求时发送的header<br />* @param int $timeout 超时时间,默认30s<br />*/<br />function curl_https($url, $data=array(), $header=array(), $timeout=30){<br /><br /> $ch = curl_init();<br /> curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查<br /> curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在<br /> curl_setopt($ch, CURLOPT_URL, $url);<br /> curl_setopt($ch, CURLOPT_HTTPHEADER, $header);<br /> curl_setopt($ch, CURLOPT_POST, true);<br /> curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));<br /> curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); <br /> curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);<br /><br /> $response = curl_exec($ch);<br /><br /> $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);<br /><br /> if($error=curl_error($ch)){<br /> die($error);<br /> }<br /><br /> curl_close($ch);<br /><br /> return array($code,$response);<br /><br />}<br /><br />// 调用<br />$url = 'https://example.com/message.php';<br />$data = array('name'=>'fdipzone');<br />$header = array();<br /><br />list($code, $response) = curl_https($url, $data, $header, 5);<br /><br />echo $code;<br />echo $response;<br />?><br />