当前位置:Gxlcms > PHP教程 > php通过header发送自定义数据

php通过header发送自定义数据

时间:2021-07-01 10:21:17 帮助过:5人阅读

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

发送header:

我们定义了三个参数,token、language、region,放入header发送过去

$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'
';
print_r($data['post']);
echo'
'
; echo'Header data:'; echo'
';
print_r($data['header']);
echo'
'
; /** * 发送数据 * @param String $url 请求的地址 * @param Array $header 自定义的header数据 * @param Array $content POST的数据 * @return String */functiontocurl($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_前缀的数据读出。

$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数据
 */functionget_all_headers(){// 忽略获取的header数据$ignore = array('host','accept','content-length','content-type');

    $headers = array();

    foreach($_SERVERas$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
)

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('
  • ').text(i)); }; $numbering.fadeIn(1700); }); });

    以上就介绍了php通过header发送自定义数据,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

  • 人气教程排行