【经验总结】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条评论!

发表评论