php通过header发送自定义数据方法


Posted in PHP onJanuary 18, 2018

本文将介绍如何通过header发送自定义数据。发送请求时,除了可以使用$_GET/$_POST发送数据,也可以把数据放在header中传输过去。

发送header:

我们定义了三个参数,tokenlanguageregion,放入header发送过去

<?php
$url = 'http://www.example.com';
$header = array('token:JxRaZezavm3HXM3d9pWnYiqqQC1SJbsU','language:zh','region:GZ');
$content = array(
    'name' => 'fdipzone'
);
$response = tocurl($url, $header, $content);
$data = json_decode($response, true);
echo 'POST data:';
echo '<pre>';
print_r($data['post']);
echo '</pre>';
echo 'Header data:';
echo '<pre>';
print_r($data['header']);
echo '</pre>';
/**
 * 发送数据
 * @param String $url   请求的地址
 * @param Array $header 自定义的header数据
 * @param Array $content POST的数据
 * @return String
 */
function tocurl($url, $header, $content){
  $ch = curl_init();
  if(substr($url,0,5)=='https'){
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true); // 从证书中检查SSL加密算法是否存在
  }
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  curl_setopt($ch, CURLOPT_POST, true);
  curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($content));
  $response = curl_exec($ch);
  if($error=curl_error($ch)){
    die($error);
  }
  curl_close($ch);
  return $response;
}
?>

接收header

我们可以在$_SERVER中获取header数据,自定义的数据都是使用HTTP_作为前缀的,所以可以把HTTP_前缀的数据读出。

<?php
$post_data = $_POST;
$header = get_all_headers();
$ret = array();
$ret['post'] = $post_data;
$ret['header'] = $header;
header('content-type:application/json;charset=utf8');
echo json_encode($ret, JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT);
/**
 * 获取自定义的header数据
 */
function get_all_headers(){
  // 忽略获取的header数据
  $ignore = array('host','accept','content-length','content-type');
  $headers = array();
  foreach($_SERVER as $key=>$value){
    if(substr($key, 0, 5)==='HTTP_'){
      $key = substr($key, 5);
      $key = str_replace('_', ' ', $key);
      $key = str_replace(' ', '-', $key);
      $key = strtolower($key);
      if(!in_array($key, $ignore)){
        $headers[$key] = $value;
      }
    }
  }
  return $headers;
}
?>

输出:

POST data:
Array
(
  [name] => fdipzone
)
Header data:
Array
(
  [token] => JxRaZezavm3HXM3d9pWnYiqqQC1SJbsU
  [language] => zh
  [region] => GZ
)

以上这篇php通过header发送自定义数据方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP.MVC的模板标签系统(二)
Sep 05 PHP
用PHP读注册表
Oct 09 PHP
memcache命令启动参数中文解释
Jan 13 PHP
php使用多个进程同时控制文件读写示例
Feb 28 PHP
destoon复制新模块的方法
Jun 21 PHP
5款适合PHP使用的HTML编辑器推荐
Jul 03 PHP
YII2.0之Activeform表单组件用法实例
Jan 09 PHP
PHP多进程编程总结(推荐)
Jul 18 PHP
PHP中new static()与new self()的比较
Aug 19 PHP
浅析PHP数据导出知识点
Feb 17 PHP
PHP创建XML接口示例
Jul 04 PHP
Laravel 添加多语言提示信息的方法
Sep 29 PHP
PHP实现从上往下打印二叉树的方法
Jan 18 #PHP
PHP获取链表中倒数第K个节点的方法
Jan 18 #PHP
PHP获取二叉树镜像的方法
Jan 17 #PHP
PHP实现按之字形顺序打印二叉树的方法
Jan 16 #PHP
PHP实现可添加水印与生成缩略图的图片处理工具类
Jan 16 #PHP
PHP实现找出链表中环的入口节点
Jan 16 #PHP
详解thinkphp中的volist标签
Jan 15 #PHP
You might like
php注入实例
2006/10/09 PHP
PHP中PDO的错误处理
2011/09/04 PHP
利用PHP实现短域名互转
2013/07/05 PHP
php数组使用规则分析
2015/02/27 PHP
Windows下PHP开发环境搭建教程(Apache+PHP+MySQL)
2016/06/13 PHP
ajax调用返回php接口返回json数据的方法(必看篇)
2017/05/05 PHP
laravel config文件配置全局变量的例子
2019/10/13 PHP
JavaScript实现网页截图功能
2014/10/16 Javascript
json实现添加、遍历与删除属性的方法
2016/06/17 Javascript
不间断循环滚动效果的实例代码(必看篇)
2016/10/08 Javascript
jQuery+HTML5实现弹出创意搜索框层
2016/12/29 Javascript
图文详解Javascript中的上下文和作用域
2017/02/15 Javascript
JavaScript仿微信(电话)联系人列表滑动字母索引实例讲解(推荐)
2017/08/16 Javascript
基于JSONP原理解析(推荐)
2017/12/04 Javascript
Vue 组件参数校验与非props特性的方法
2019/02/12 Javascript
jQuery动态生成的元素绑定事件操作实例分析
2019/05/04 jQuery
bootstrap 日期控件 datepicker被弹出框dialog覆盖的解决办法
2019/07/09 Javascript
Smartour 让网页导览变得更简单(推荐)
2019/07/19 Javascript
vue使用prop可以渲染但是打印台报错的解决方式
2019/11/13 Javascript
[43:51]2018DOTA2亚洲邀请赛3月30日 小组赛B组 EG VS Secret
2018/03/31 DOTA
跟老齐学Python之??碌某?? target=
2014/09/12 Python
Python使用SQLite和Excel操作进行数据分析
2018/01/20 Python
redis数据库及与python交互用法简单示例
2019/11/01 Python
Flask框架搭建虚拟环境的步骤分析
2019/12/21 Python
canvas实现扭蛋机动画效果的示例代码
2018/10/17 HTML / CSS
美国首屈一指的高品质珠宝设计师和零售商:Allurez
2018/01/23 全球购物
社会实践心得体会
2014/01/03 职场文书
公益活动策划方案
2014/01/09 职场文书
优秀士兵先进事迹
2014/02/06 职场文书
小学生环保演讲稿
2014/04/25 职场文书
会计专业应届生自荐信
2014/06/28 职场文书
社区护士演讲稿
2014/08/27 职场文书
2016年度农村党员干部主题教育活动总结
2016/04/06 职场文书
详解Django中 render() 函数的使用方法
2021/04/22 Python
vue+spring boot实现校验码功能
2021/05/27 Vue.js
Pytest中skip和skipif的具体使用方法
2021/06/30 Python