PHP Curl类使用

GET类食用方法

<?php
$api = myCurl('目标地址');
//JSON解码
$data = json_decode($api,true);
//编码并输出
echo json_encode($data,JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE);  
function myCurl($url){ //Curl GET
    $ch = curl_init();     // Curl 初始化  
    $timeout = 30;     // 超时时间:30s  
    $ua='Mozilla/5.0( Linux; Android 8.1.0; PBCM30 Build/OPM1.171019011; wv)Apple Webkit/ 537.36(KHTML, like Gecko) Version/4.0 Chrome/62.0.3202. 84 Mobile Safari/537.36';    // 伪造抓取 UA  
    $ip = mt_rand(11, 191) . "." . mt_rand(0, 240) . "." . mt_rand(1, 240) . "." . mt_rand(1, 240);
    curl_setopt($ch, CURLOPT_URL, $url);              // 设置 Curl 目标  
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);      // Curl 请求有返回的值  
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);     // 设置抓取超时时间  
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);        // 跟踪重定向  
    curl_setopt($ch, CURLOPT_REFERER, $url);   // 伪造来源网址  
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:'.$ip, 'CLIENT-IP:'.$ip));  //伪造IP  
    curl_setopt($ch, CURLOPT_USERAGENT, $ua);   // 伪造ua   
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // https请求 不验证证书和hosts  
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);  //不检查 证书中 SSL 加密算法是否存在
    curl_setopt($ch, CURLOPT_AUTOREFERER, true); ////当Location:重定向时,自动设置header中的Referer:信息
    curl_setopt($ch, CURLOPT_ENCODING, '');//解决网页乱码问题
    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); //强制协议为1.0
    curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 ); //强制使用IPV4协议解析域名
    $content = curl_exec($ch);   
    curl_close($ch);    // 结束 Curl  
    return $content;    // 函数返回内容  
}

Post类食用方法

<?php
$api = '目标地址';
//参数
$switch = array('url'=>'');
//请求字符串
$var = http_build_query($switch); 
//转json数据
$row = PostCurl($api,$var); 
//JSON解码
$json = json_decode($row,true);
//编码并输出
echo json_encode($data,JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE); 
function PostCurl($url, $data){    //Curl POST
    $ch = curl_init();//初使化init方法    
    curl_setopt($ch, CURLOPT_URL, $url);//指定URL   
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//设定请求后返回结果    
    curl_setopt($ch, CURLOPT_POST, 1);//声明使用POST方式来进行发送    
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//发送什么数据呢    
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//忽略证书
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//忽略host     
    curl_setopt($ch, CURLOPT_HEADER, 0);//忽略header头信息   
    curl_setopt($ch, CURLOPT_TIMEOUT, 30); //设置超时时间
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); //强制协议为1.0
    curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 ); //强制使用IPV4协议解析域名
    $content = curl_exec($ch);
    curl_close($ch);
    return $content;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容