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的FTP学习(一)[转自奥索]
Oct 09 PHP
php 用sock技术发送邮件的函数
Jul 21 PHP
从PHP $_SERVER相关参数判断是否支持Rewrite模块
Sep 26 PHP
PHP中ob_start函数的使用说明
Nov 11 PHP
php使用fgetcsv读取csv文件出现乱码的解决方法
Nov 08 PHP
php生成shtml类用法实例
Dec 09 PHP
php从给定url获取文件扩展名的方法
Mar 14 PHP
PHP list() 将数组中的值赋给变量的简单实例
Jun 13 PHP
php微信公众账号开发之前五个坑(一)
Sep 18 PHP
PHP中ajax无刷新上传图片与图片下载功能
Feb 21 PHP
PHP curl 或 file_get_contents 获取需要授权页面的方法
May 05 PHP
PHP检测接口Traversable用法详解
Dec 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程序中的常见漏洞进行攻击(上)
2006/10/09 PHP
一些常用的php简单命令代码集锦
2007/09/24 PHP
PHP学习笔记 (1) 环境配置与代码调试
2011/06/19 PHP
php header函数的常用http头设置
2015/06/25 PHP
基于thinkPHP框架实现留言板的方法
2016/10/17 PHP
PHP微信企业号开发之回调模式开启与用法示例
2017/11/25 PHP
Laravel使用scout集成elasticsearch做全文搜索的实现方法
2018/11/30 PHP
vs2003 js文件编码问题的解决方法
2010/03/20 Javascript
JavaScript中使用replace结合正则实现replaceAll的效果
2010/06/04 Javascript
计算世界完全对称日的js代码,粗糙版
2011/11/04 Javascript
js禁止页面刷新禁止用F5键刷新禁止右键的示例代码
2013/09/23 Javascript
ECMAScript中函数function类型
2015/06/03 Javascript
js判断手机端(Android手机还是iPhone手机)
2015/07/22 Javascript
跟我学习javascript解决异步编程异常方案
2015/11/23 Javascript
js实现按钮控制带有停顿效果的图片滚动
2016/08/30 Javascript
基于Bootstrap和jQuery构建前端分页工具实例代码
2016/11/23 Javascript
在网页中插入百度地图的步骤详解
2016/12/02 Javascript
BootstrapTable refresh 方法使用实例简单介绍
2017/02/20 Javascript
JS基于贪心算法解决背包问题示例
2017/11/27 Javascript
VUE 自定义组件模板的方法详解
2019/08/30 Javascript
mpvue微信小程序开发之实现一个弹幕评论
2019/11/24 Javascript
[01:23]2019完美世界全国高校联赛(春季赛)合肥全国总决赛
2019/06/10 DOTA
Python中join函数简单代码示例
2018/01/09 Python
dataframe 按条件替换某一列中的值方法
2019/01/29 Python
详解python websocket获取实时数据的几种常见链接方式
2019/07/01 Python
CSS3实战第一波 让我们尽情的圆角吧
2010/08/27 HTML / CSS
CSS3区域模块region相关编写示例
2015/08/28 HTML / CSS
美国转售二手商品的电子商务平台:BLINQ
2018/12/13 全球购物
Unineed中文官网:高端护肤美妆与时尚配饰,英国直邮
2020/07/23 全球购物
《鸿门宴》教学反思
2014/04/22 职场文书
2015年招聘工作总结
2014/12/12 职场文书
2015暑期社会实践通讯稿
2015/07/18 职场文书
浅谈Python中的正则表达式
2021/06/28 Python
从QQtabBar看css命名规范BEM的详细介绍
2021/08/07 HTML / CSS
Mysql中常用的join连接方式
2022/05/11 MySQL