php中转,使用 PHP Curl 做数据中转
使用 PHP Curl 做数据中转
流程
收集头部信息
收集请求数据
转换头部信息为 CURL 头部请求格式
使用 Curl 进行转发
收集 HTTP 头信息
function getAllHeaders() {
$headers = [];
foreach ($_SERVER as $name => $value) {
if (substr($name, 0, 5) == 'HTTP_') {
$headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
}
}
return $headers;
}
使用 PHP 封装协议获取输入数据
$content = file_get_contents('php://input')
转换头信息为 Curl 请求格式
$headers = getAllHeaders();
$header_joins = [];
foreach ($headers as $k => $v) {
if ($k == 'X-Pingplusplus-Signature' || $k == 'Content-Type')
array_push($header_joins, $k . ': ' . $v);
}
使用 Curl 进行转发
function post($url, $headers, $raw_data) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); // POST
curl_setopt($ch, CURLOPT_POSTFIELDS, $raw_data); // Post Data
curl_setopt($ch, CURLOPT_URL, $url);//设置要访问的 URL
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); //模拟用户使用的浏览器
@curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1 ); // 使用自动跳转
curl_setopt($ch, CURLOPT_TIMEOUT, 60); //设置超时时间
curl_setopt($ch, CURLOPT_AUTOREFERER, 1 ); // 自动设置Referer
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 收集结果而非直接展示
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); // 自定义 Headers
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
// $result = post($url, $headers, $raw_data);
示例
// @ini_set('display_errors', 1);
function getAllHeaders() {
$headers = [];
foreach ($_SERVER as $name => $value) {
if (substr($name, 0, 5) == 'HTTP_') {
$headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
}
}
return $headers;
}
$content = file_get_contents('php://input');
$headers = getAllHeaders();
$header_joins = [];
foreach ($headers as $k => $v) {
if ($k == 'X-Pingplusplus-Signature' || $k == 'Content-Type')
array_push($header_joins, $k . ': ' . $v);
}
// print_r($header_joins);die();
function post($url, $headers, $raw_data) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); // POST
curl_setopt($ch, CURLOPT_POSTFIELDS, $raw_data); // Post Data
curl_setopt($ch, CURLOPT_URL, $url);//设置要访问的 URL
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); //模拟用户使用的浏览器
@curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1 ); // 使用自动跳转
curl_setopt($ch, CURLOPT_TIMEOUT, 60); //设置超时时间
curl_setopt($ch, CURLOPT_AUTOREFERER, 1 ); // 自动设置Referer
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 收集结果而非直接展示
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); // 自定义 Headers
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
$result = post('http://rgjc6z4v2x.proxy.qqbrowser.cc/api/pingxx', $header_joins, $content);
echo $result;
php中转,使用 PHP Curl 做数据中转相关推荐
- 建立数据中转服务器的详细方法
随着互联网应用的飞速发展,互联网给人们的生活带来了极大的便利.然而互联网暗藏的风险也如悬在头顶的利剑,随时可能带来致命的伤害.因此,即便是今天,依然有许多涉密单位和网络,既存在与互联网交换数据的实际需 ...
- 某APP安全检测 (360脱壳+算法分析+数据中转注入)
https://www.t00ls.net/articles-45803.html 最近对某一APP进行安全检测,整个过程花费几天时间,最耗时的就是写中转脚本实现数据的自动加密解密过程,而且过程中遇到 ...
- 你的报表工具会做数据准备吗 ——报表开发中的深层次问题
前言 现在企业的报表开发大部分都使用报表工具完成,成熟的报表工具提供了丰富的显示设置.图表类型.导出打印等功能可以简化报表开发,非常方便.但在实际报表开发中还是经常碰到一些非常棘手的深层次问题,即使是 ...
- 如何用curl做PUT请求?
本文翻译自:How to do a PUT request with curl? 如何使用curl测试RESTful PUT(或DELETE)方法? #1楼 参考:https://stackoom.c ...
- GAN作用——在我做安全的看来,就是做数据拟合、数据增强
from:https://www.zhihu.com/question/56171002/answer/155777359 GAN的作用,也就是为什么GAN会火了(有部分原因可能是因为Lecun的赞赏 ...
- python代码示例图形-纯干货:手把手教你用Python做数据可视化(附代码)
原标题:纯干货:手把手教你用Python做数据可视化(附代码) 导读:制作提供信息的可视化(有时称为绘图)是数据分析中的最重要任务之一.可视化可能是探索过程的一部分,例如,帮助识别异常值或所需的数据转 ...
- python与excel做数据可视化-python做可视化数据分析,究竟怎么样?
Python做可视化数据分析也是可以的,只是对比起来专业的可视化工具有些得不应手,做出来的图可能不太美观.Python用来处理数据,用来分析绝对可以.我觉得想要可视化可以使用专门的可视化工具. 不过, ...
- mysql errno : 1146_MySQL_MySQL复制出错 Last_SQL_Errno:1146的解决方法,背景:我们在做数据迁移或者 - phpStudy...
MySQL复制出错 Last_SQL_Errno:1146的解决方法 背景:我们在做数据迁移或者拆分的时候,使用Tablespace transcation 这种解决方案时,很有可能就会遇到 从库复制 ...
- echarts迁徙图 vue_vue中高德搭配echarts做数据迁徙流线图
前言 此系列共分为以下几篇 <vue中高德地图的使用> <vue中基于高德的多行政区域覆盖> <vue中高德搭配echarts做数据迁徙流线图> (本篇) 本篇效果 ...
最新文章
- 如何实现后台向前台传数据
- 春泥计算机科技怎么样,【我最喜爱的教师班主任】李喜秋:化作春泥更护花
- python虚拟环境中文件分部_Python之虚拟环境管理
- 拦截器,过滤器,监听器原理
- 解决Django 忘记超级管理员密码 重设密码登录教程
- 最详细的PCL编译安装流程
- MathType中如何快速输入空心字母
- CISCO基础之局域网交换机配置
- ImportError: No module named ‘keras_contrib‘
- php时间变时间戳,php 时间如何转换为时间戳
- 23种设计模式——适配器模式
- 关于RS485的使用
- oc引导windows蓝屏_电脑蓝屏你别怕,黑客教你代码查看问题
- Oracle中to_date函数用法
- 二项式系数表--杨辉三角形
- iPhone白苹果修复工具
- 本地如何内网穿透映射外网
- Binary Knapsack (BKP) Problem 是什么
- 数学不行计算机选什么专业好,数学差合适什么专业能学计算机吗?对数学要求低的专业有哪些...
- 盘古开源:大数据赋能业务运营,自主研发实现新突破
热门文章
- 和php工具箱一样的,将php工具箱或其它类似工具正确安装好,并写出安装步骤与注意事项...
- Centos 7 添加新磁盘
- 58一面:Redis数据更新,是先更新数据库还是先更新缓存?
- 皮一皮:到底是土还是士...
- 因退休太无聊,Python创始人加入微软!
- 你如果只是一直囤干货,那永远不可能进步
- wpf中内容包含在border中_WPF:点击后聚焦边框(WPF: Focus border after click)
- opencv 白平衡
- error C2039: IsOutRange
- pytorch cross_entropy