PHP简单的Curl的Get请求和Curl的Post请求和file_get_contents的Get请求获取接口JSON数据
25-04-07 03:54
768
0
PHP 携带 Cookie 用 Curl 进行 Post 或 Get 请求获取数据
#PHP 全能 Curl 请求
/** * curl发送HTTP请求方法 * @param $url * @param string $method * @param array $params * @param array $header * @param int $timeout * @param bool|false $multi * @return mixed * @throws Exception */ function hansCurl( $url, $method = 'GET', $params = array(), $header = array(), $timeout = 30, $multi = false ) { $curl = curl_init(); curl_setopt( $curl, CURLOPT_TIMEOUT, $timeout ); curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true ); curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, false ); curl_setopt( $curl, CURLOPT_SSL_VERIFYHOST, false ); curl_setopt( $curl, CURLOPT_HTTPHEADER, $header ); switch ( strtoupper( $method ) ) { case 'GET': if ( !empty( $params ) ) { $uri = parse_url( $url ); $url .= ( empty( $uri[ 'query' ] ) ? '?' : '&' ) . http_build_query( $params ); } curl_setopt( $curl, CURLOPT_URL, $url ); break; case 'POST': curl_setopt( $curl, CURLOPT_URL, $url ); curl_setopt( $curl, CURLOPT_POST, true ); $params = $multi ? $params : http_build_query( $params ); //判断是否传输文件 curl_setopt( $curl, CURLOPT_POSTFIELDS, $params ); break; default: throw new Exception( '不支持的请求方式!' ); } $response = curl_exec( $curl ); $error = curl_error( $curl ); curl_close( $curl ); if ( $error ) { throw new Exception( '请求发生错误:' . $error ); } return $response; }
简单的 curl 请求(Get 请求)
<?php function hansCurl($url) { $url="https://www.vvhan.com"; $ip = rand(0, 255) . '.' . rand(0, 255) . '.' . rand(0, 255) . '.' . rand(0, 255); $header[] = "accept: application/json"; $header[] = "accept-encoding: gzip, deflate"; $header[] = "accept-language: en-US,en;q=0.8"; $header[] = "content-type: application/json"; $header[] = "CLIENT-IP:" . $ip; $header[] = "X-FORWARDED-FOR:" . $ip; $cookie = "cookie"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); //设置传输的 url curl_setopt($ch, CURLOPT_HTTPHEADER, $header); //发送 http 报头 curl_setopt($ch, CURLOPT_COOKIE, $cookie); //设置Cookie curl_setopt($ch, CURLOPT_REFERER, "https://www.vvhan.com"); //设置Referer curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36"); //设置UA curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate'); // 解码压缩文件 //curl_setopt($ch, CURLOPT_COOKIEJAR, "./cookie/cookie.txt");//保存cookie文件 //curl_setopt($ch, CURLOPT_COOKIEFILE, "./cookie/cookie.txt"); //调用cookie文件 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // 对认证证书来源的检查 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); // 从证书中检查SSL加密算法是否存在 curl_setopt($ch, CURLOPT_TIMEOUT, 5); // 设置超时限制防止死循环 $output = curl_exec($ch); curl_close($ch); return $output; } ?>
简单的 curl 请求(Post 请求)
<?php function hansCurl($url) { $url="https://www.vvhan.com"; $ip = rand(0, 255) . '.' . rand(0, 255) . '.' . rand(0, 255) . '.' . rand(0, 255); $header[] = "accept: application/json"; $header[] = "accept-encoding: gzip, deflate"; $header[] = "accept-language: en-US,en;q=0.8"; $header[] = "content-type: application/json"; $header[] = "CLIENT-IP:" . $ip; $header[] = "X-FORWARDED-FOR:" . $ip; $cookie="cookie"; $post_data = array( "token" => "123456" ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url);//设置传输的 url curl_setopt($ch, CURLOPT_HTTPHEADER, $header); //发送 http 报头 curl_setopt($ch, CURLOPT_COOKIE, $cookie);//设置Cookie curl_setopt($ch, CURLOPT_REFERER, "https://www.vvhan.com");//设置Referer curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36");//设置UA curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate'); // 解码压缩文件 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);// 对认证证书来源的检查 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);// 从证书中检查SSL加密算法是否存在 curl_setopt($ch, CURLOPT_TIMEOUT, 5); // 设置超时限制防止死循环 curl_setopt($ch, CURLOPT_POST, 1); //设置POST发送数据 curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);//发送POST数据内容 //curl_setopt($ch, CURLOPT_COOKIEJAR, "./cookie/cookie.txt");//保存cookie文件 //curl_setopt($ch, CURLOPT_COOKIEFILE, "./cookie/cookie.txt"); //调用cookie文件 $output = curl_exec($ch); curl_close($ch); return $output; } ?>
PHP 的 curl 上传文件(Post 请求)
<?php function hansCurl($url) { $url = "https://www.vvhan.com"; $names="1.png"; $ip = rand(0, 255) . '.' . rand(0, 255) . '.' . rand(0, 255) . '.' . rand(0, 255); $header[] = "accept: application/json"; $header[] = "accept-encoding: gzip, deflate"; $header[] = "accept-language: en-US,en;q=0.8"; $header[] = "content-type: application/json"; $header[] = "CLIENT-IP:" . $ip; $header[] = "X-FORWARDED-FOR:" . $ip; $cookie = "cookie"; $post_data = [ 'name' => $names, 'attrFile' => new CURLFile(realpath('hanCURLFile/' . $names)), ]; $ch = curl_init(); // 启动一个CURL会话 curl_setopt($ch, CURLOPT_URL, $url); // 要访问的地址 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 对认证证书来源的检查 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回 curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36'); // 模拟用户使用的浏览器 curl_setopt($ch, CURLOPT_POST, 1); // 发送一个常规的Post请求 curl_setopt($ch, CURLOPT_REFERER, 'https://www.vvhan.com'); // 自动设置Referer curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); // Post提交的数据包 curl_setopt($ch, CURLOPT_ENCODING, 'gzip'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转 curl_setopt($ch, CURLOPT_TIMEOUT, 5); // 设置超时限制防止死循环 curl_setopt($ch, CURLOPT_HEADER, 0); // 显示返回的Header区域内容 //curl_setopt($ch, CURLOPT_COOKIEJAR, "./cookie/cookie.txt");//保存cookie文件 //curl_setopt($ch, CURLOPT_COOKIEFILE, "./cookie/cookie.txt"); //调用cookie文件 $output = curl_exec($ch); // 执行操作 curl_close($ch); // 关闭CURL会话 return ($output); } ?>
简单的 file_get_contents 请求(Get 请求)
<?php $url = 'https://www.vvhan.com/'; $data = file_get_contents($url); exit($data); ?>
-
jquery特效 元素周期表-3D
jquery特效-3D元素周期表四种展示效果 表面 球体 螺旋 网格 396 0 21-05-17 -
果汁排行榜-聚合各种排行榜
果汁排行榜是一个聚合各种排行榜的一个实用网站,你可以利用这个网站轻松查询到各个方面的排行榜。它支持热搜榜,热议榜,影视榜,音乐榜,摄影榜,财富榜,产品榜,游戏榜,热门小说热议榜,App排行榜,小程序排行榜,网站排名榜,热议榜等等。 574 0 21-12-07 -
无需视频号!不靠微信收藏!实现朋友圈发1分钟以上长视频
我想大家或多或少都有「在朋友圈发长视频」的需求但从朋友圈直接上传视频,最多只能发30秒就算用上了微信官方的视频剪辑 APP 秒剪(miaoj... 1139 0 25-04-27 -
C语言编程点滴
C 语言的书林林总总,数不胜数,其中不乏《C Programming Language》[1]这样的Bible 级经典白皮书,也不乏《C 陷阱与缺陷》[2]、《C ... 902 0 24-05-24 -
程序员修炼之道 专业程序员必知的33个技巧
程序员修炼之道1 我的源码让猫给吃了2 软件的熵3 石头汤与煮青蛙4 足够好的软件5 你的知识资产6 交流!7 重复的危害8 正交性9 可... 1060 0 24-05-28 -
2025计算机考研系列课程资料
01-第一讲操作系统概述1.pdf01第一讲计算机网络概述.pdf02-第一讲操作系统概述2.pdf02第二讲物理层.pdf03-第二讲进程管理1.pdf03第三讲数据... 1217 0 24-08-19 -
excel导出导入数据
* Enter 导出excel共同方法 ... * @param unknown_type $expTitle * @param unknown_type $expCellName * @param unknown_type $expTableData 434 0 21-06-01 -
私语小程序-语音日记本 录音及播放(含PHP后端)
私语 - 语音日记本描述一个简易的语音日记本小程序(服务器语言选的PHP)。以语音的方式记录生活点滴。替代文字日记的理由是我觉得语音可... 1133 0 24-06-02
发表我的评论
共0条评论
- 这篇文章还没有收到评论,赶紧来抢沙发吧~