php使用curl读取远程http和https网页内容实例源码
|
phpcurl函数组可以帮助我们把机器为装成人行为来抓取网站,下面来分享两个例子,一个是访问http网页,一个访问https网页,下面一起看看。 php使用curl访问https页面今日在做一个项目,需要curl获取第三方的API,对方的API是https方式的。 之前使用curl能获取http请求,但今天获取https请求时,出现了以下的错误提示:证书验证失败。 SSL certificate problem,verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed 解决方法为在curl请求时,加入如下代码 curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false); // 跳过证书检查 curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,true); // 从证书中检查SSL加密算法是否存在 完整代码: /** curl 获取 https 请求 * @param String $url 请求的url * @param Array $data 要發送的數據 * @param Array $header 请求时发送的header * @param int $timeout 超时时间,默认30s * 作者:脚本之家教程 http://www.manongjc.com */ function curl_https($url,$data=array(),$header=array(),$timeout=30){ $ch = curl_init(); curl_setopt($ch,false); // 跳过证书检查 curl_setopt($ch,true); // 从证书中检查SSL加密算法是否存在 curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_HTTPHEADER,$header); curl_setopt($ch,CURLOPT_POST,true); curl_setopt($ch,CURLOPT_POSTFIELDS,http_build_query($data)); curl_setopt($ch,CURLOPT_RETURNTRANSFER,CURLOPT_TIMEOUT,$timeout); $response = curl_exec($ch); if($error=curl_error($ch)){ die($error); } curl_close($ch); return $response; } // 调用 $url = 'https://www.example.com/api/message.php'; $data = array('name'=>'fdipzone'); $header = array(); $response = curl_https($url,$data,$header,5); echo $response; ?> php使用curl访问http页面如何我们请求的是http网页,则不需要以下代码: curl_setopt($ch,true); // 从证书中检查SSL加密算法是否存在 直接这样就可以: $curl=curl_init(); curl_setopt($curl,"http://www.manongjc.com/article/1579.html"); curl_setopt($curl,CURLOPT_HEADER,1); curl_setopt($curl,CURLOPT_PROXYTYPE,CURLPROXY_SOCKS5);//使用了SOCKS5代理 curl_setopt($curl,CURLOPT_PROXY,"fuck.3322.org:1080"); $data = array('user' => "geek",'password' => 'fuck'); curl_setopt($curl,$data); //curl_setopt($curl,CURLOPT_HTTPPROXYTUNNEL,1);如果是HTTP代理 //curl_setopt($curl,CURLOPT_COOKIEJAR,'cookie.txt');cookie你懂的 $request = curl_exec($curl); //var_dump($request); curl_close($curl); (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
