curl post json 数据
$data = array("name" => "Hagrid", "age" => "36"); $data_string = json_encode($data); $ch = curl_init('http://api.local/rest/users'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($data_string)) ); $result = curl_exec($ch);
curl post 自定义环境变量
设置 CURLOPT_HTTPHEADER
【$_SERVER['PHP_AUTH_USER'] 是由服务器控制产生的变量,你不能给它赋值】
function curlRequest($url, $data_string) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'bing:bingbing') ); $result = curl_exec($ch); return $result; }
curl post xml数据
$header[] = "Content-type: text/xml"; //定义content-type为xml $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_data); $response = curl_exec($ch); if (curl_errno($ch)) { print curl_error($ch); } curl_close($ch);
"<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Content><![CDATA[%s]]></Content>
</xml>"
/** * curl获取指定路径内容 */ function curlRequest($url, $method = '', $postdata = '', $isjson=0) { $ch = curl_init(); $post = $method && strtolower($method) == 'post' ? 1 : 0; curl_setopt($ch, CURLOPT_URL, $url); if($post) { curl_setopt($ch, CURLOPT_POST, $post); if($postdata) { if(!$isjson) { $postdata = http_build_query($postdata); } curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata); } } curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60); curl_setopt($ch, CURLOPT_TIMEOUT, 80); if($isjson) { curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type:application/json', 'Content-Length:'. strlen($postdata) )); } curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"); $data = curl_exec($ch); $datainfo = curl_getinfo($ch); curl_close($ch); if($datainfo['http_code'] == 200) { return array($data, $datainfo); } else { return array(); } }
curl 模拟百度蜘蛛访问
$url = 'xxxxxxxx?' . time(); echo curl_get($url); /** * 获取内容 */ function curl_get($url) { $header = array( 'CLIENT-IP:' . mt_rand(1, 255) . '.' . mt_rand(1, 255) . '.' . mt_rand(1, 255) . '.'. mt_rand(1, 255) . '', 'X-FORWARDED-FOR:' . mt_rand(1, 255) . '.' . mt_rand(1, 255) . '.' . mt_rand(1, 255) . '.' . mt_rand(1, 255) . '', ); $ch = curl_init(); //初始化curl curl_setopt($ch, CURLOPT_URL, $url); //设置链接 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //设置是否返回信息 curl_setopt($ch, CURLOPT_HTTPHEADER, $header); //设置HTTP头 curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_TIMEOUT,60); //超时设置 curl_setopt($ch, CURLOPT_REFERER, 'http://www.baidu.com'); curl_setopt($ch, CURLOPT_USERAGENT, 'Baiduspider+(+http://www.baidu.com/search/spider.htm)'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); $content = curl_exec($ch); //接收返回信息 return $content; }
curl 获取百度搜索关键词内容
$gpc = stf%3D1434211200%2C1434297599|stftype%3D2 时间范围,无此参数表示全部数据 $pos = 0,10,20,...10n 分页 wd 关键字 $url = 'http://www.baidu.com/s?wd=site%3Axxx.xxx.com%20%E8%B5%8C&gpc=' . $gpc . '&cl=3&pn=' . $pos;