【经验总结】PHP中POST、GET相关方式
GET:
$s=file_get_contents($url);//get数据
POST数据:
$url="http://150s.cn/";
//第一部分
$curl=curl_init();//初始化curl
$baidu="http://www.baidu.com";//来源网站
$cookie_file=tempnam('./tmp','cookie');
//随机ip
$Num1 = rand(20,260);
$Num2 = rand(20,280);
$Num3 = rand(20,299);
$Num4 = rand(20,299);
$ipp=$Num1.'.'.$Num2.'.'.$Num3.'.'.$Num4;
$xipp='X-FORWARDED-FOR:'.$ipp;
$cipp='CLIENT-IP:'.$ipp;
//组装HOST
$host=array($xipp,$cipp);
//$host=array('X-FORWARDED-FOR:232.96.12.110','CLIENT-IP:232.96.12.110');
$ua='Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)';//UA
curl_setopt($curl, CURLOPT_URL, $url);//访问的url
curl_setopt($curl, CURLOPT_HTTPHEADER, $host);//指定host
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); // 跳过证书验证(https)的网站无法跳过,会报错
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书验证
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_file);//存储cookie
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//以文件流显示
curl_setopt($curl, CURLOPT_REFERER, $baidu);//模拟来源
curl_setopt($curl, CURLOPT_USERAGENT, $ua);//百度蜘蛛
curl_setopt($curl, CURLOPT_TIMEOUT, 20);//防止死循环
$result=curl_exec($curl);//返回结果
curl_close($curl);//关闭curl
$result=htmlentities($result,ENT_COMPAT,"utf-8");
//echo $result;
POST、GET共用方法(很好用的方法类):
function https_request($url,$data=null,$header=NULL){
// 1. 初始化一个 cURL 对象
$curl = curl_init();
// 2.设置你需要抓取的URL
curl_setopt($curl, CURLOPT_URL,$url);
// (可选)设置头 阿里云的许多接口需要在头上传输秘钥
if(!empty($header)){
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
}
// 3.https必须加这个,不加不好使(不多加解释,东西太多了)
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); //对认证证书进行检验
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
// 4.设置post数据
if (!empty($data)){ //post方式,否则是get方式
//设置模拟post方式
curl_setopt($curl,CURLOPT_POST,1);
//传数据,get方式是直接在地址栏传的,这是post传参的解决方式
curl_setopt($curl,CURLOPT_POSTFIELDS,$data);//$data可以是数组,json
}
// 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。1是保存,0是输出
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// 5. 运行cURL,请求网页
$output = curl_exec($curl);
// 6. 关闭URL请求
curl_close($curl);
return $output;
}
//使用方法
$rt=https_request($url2,$json);//不带$json为GET请求
经验总结 2026-03-28 21:20:50 通过 网页 浏览(104)
共有0条评论!