php中的curl常用例子
1.基本请求
<?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://www.baidu.com"); curl_setopt($ch, CURLOPT_HEADER, false); // 如果返回乱码,可以把false改为 array('content-type: application/x-www-form-urlencoded; charset=UTF-8') curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //为true时,会把结果存起来,为false时,会直接把结果输出 $result=curl_exec($ch); curl_close($ch); ?>
2.使用代理
<?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://www.baidu.com"); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE); curl_setopt($ch, CURLOPT_PROXY, 125.21.23.6:8080); //url_setopt($ch, CURLOPT_PROXYUSERPWD, 'username:password');如果需要代理账号密码时带上 $result=curl_exec($ch); curl_close($ch); ?>
3.带上数据
<?php $ch = curl_init(); $data = array('name' => 'test', 'sex'=>1,'birth'=>'20101010'); $data = http_build_query($data); // 生成 url_encode 之后的请求字符串 curl_setopt($ch, CURLOPT_URL, 'http://www.baidu.com'); // get请求方式 直接把参数拼接到 url 后面,把下面两句去掉 curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_exec($ch); ?>
4.模拟登陆,保存cookie
<?php $cookie_jar = $_SERVER['DOCUMENT_ROOT'].'/test.cookie'; // cookie文件目录 $url = "http://www.baidu.com/doLogin"; $data = array('username'=>'username','passowrd'=>'password'); $data = http_build_query($data); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar); $content = curl_exec($ch); curl_close($ch); // 接下来进入需要登录的页面时带上 $cookie_jar 就可以直接进入了 ?>
5.带上cookie进入需要登录的页面
<?php$http_hearder = array('Content-type:application/json;charset=UTF-8','Authorization:Basic YWRtaW46YWRtaW4='); $cookie_jar = $_SERVER['DOCUMENT_ROOT'].'/test.cookie'; // cookie文件目录 $ch = curl_init (); curl_setopt($ch, CURLOPT_HTTPHEADER, $http_hearder); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); // curl_setopt($ch, CURLOPT_COOKIE, "devckie=test"); // 设置cookie curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); // 不验证HOST curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // 不验证证书 curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true ); // 返回数据 $result = curl_exec ( $ch ); curl_close ( $ch ); ?>
By Mr.Yang