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读取IMAP邮件
Oct 09 PHP
PHP isset()与empty()的使用区别详解
Aug 29 PHP
一个显示某段时间内每个月的方法 返回由这些月份组成的数组
May 16 PHP
php截取中文字符串不乱码的方法
Dec 25 PHP
PHP中常见的缓存技术实例分析
Sep 23 PHP
解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
Nov 25 PHP
thinkPHP5.0框架整体架构总览【应用,模块,MVC,驱动,行为,命名空间等】
Mar 25 PHP
Windows 下安装 swoole 图文教程(php)
Jun 05 PHP
PHP 返回数组后处理方法(开户成功后弹窗提示)
Jul 03 PHP
ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】
May 12 PHP
Laravel 默认邮箱登录改成用户名登录的实现方法
Aug 12 PHP
laravel 解决paginate查询多个字段报错的问题
Oct 22 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 session处理的定制
2009/03/16 PHP
PHP常用开发函数解析之数组篇[未完结]
2012/07/30 PHP
CodeIgniter钩子用法实例详解
2016/01/20 PHP
yii2的restful api路由实例详解
2019/05/14 PHP
JQuery 构建客户/服务分离的链接模型中Table中的排序分析
2010/01/22 Javascript
Js切换功能的简单方法
2010/11/23 Javascript
Ajax提交与传统表单提交的区别说明
2014/02/07 Javascript
jQuery实现企业网站横幅焦点图切换功能实例
2015/04/30 Javascript
Javascript模仿淘宝信用评价实例(附源码)
2015/11/26 Javascript
JavaScript构造函数详解
2015/12/27 Javascript
Bootstrap.css与layDate日期选择样式起冲突的解决办法
2017/04/07 Javascript
vue使用iframe嵌入网页的示例代码
2020/06/09 Javascript
微信小程序仿RadioGroup改变样式的处理方案
2018/07/13 Javascript
vue-cli 构建骨架屏的方法示例
2018/11/08 Javascript
Vue 实现登录界面验证码功能
2020/01/03 Javascript
[02:27]2018DOTA2亚洲邀请赛趣味视频之钓鱼大赛 谁是垂钓冠军?
2018/04/05 DOTA
python中hashlib模块用法示例
2017/10/30 Python
使用Python进行AES加密和解密的示例代码
2018/02/02 Python
详解pyqt5 动画在QThread线程中无法运行问题
2018/05/05 Python
Pycharm在创建py文件时,自动添加文件头注释的实例
2018/05/07 Python
python实现银联支付和支付宝支付接入
2019/05/07 Python
信号生成及DFT的python实现方式
2020/02/25 Python
windows下Pycharm安装opencv的多种方法
2020/03/05 Python
使用OpenCV对车道进行实时检测的实现示例代码
2020/06/19 Python
Michael Kors香港官网:美国奢侈品品牌
2019/12/26 全球购物
Everlast官网:拳击、综合格斗和健身相关的体育用品
2020/08/03 全球购物
人力资源专业推荐信
2013/11/29 职场文书
小学作文评语大全
2014/04/21 职场文书
大学生工作自荐书
2014/06/16 职场文书
装配出错检讨书
2014/09/23 职场文书
党的群众路线教育实践活动个人批评与自我批评
2014/10/16 职场文书
干部作风建设工作总结
2014/10/29 职场文书
2014年教研室工作总结
2014/12/06 职场文书
送达通知书
2015/04/25 职场文书
公司规章制度范本
2015/08/03 职场文书
企业安全隐患排查治理制度
2015/08/05 职场文书