PHP 如何保存/打印 整个Http请求头和附带的post数据?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 如何保存/打印 整个Http请求头和附带的post数据?相关的知识,希望对你有一定的参考价值。

$_SERVER全是解析后的,我需要的是原始的全部数据用于转发

你在文件中添加phpinfo();语句,这个语句显示所有的变量值,你仔细阅读输出内容,会有启发的。

POST提交的所有数据在$_POST数组里面。
参考技术A 同求,知道的大神解答一下 参考技术B PHP手册提供了现成的函数:
getallheaders
(PHP 4, PHP 5)
getallheaders — Fetch all HTTP request headers
说明
array getallheaders ( void )
Fetches all HTTP headers from the current request.
This function is an alias for apache_request_headers(). Please read theapache_request_headers() documentation for more information on how this function works.
返回值
An associative array of all the HTTP headers in the current request, orFALSE on failure.
Example #1 getallheaders() example

复制代码代码如下:

<?php
foreach (getallheaders() as $name => $value)
echo "$name: $value\n";

?>

不过这个函数只能在apache环境下使用,iis或者nginx并不支持,可以通过自定义函数实现

复制代码代码如下:

<?php
<SPAN class=html>if (!function_exists('getallheaders'))

function getallheaders()

foreach ($_SERVER as $name => $value)

if (substr($name, 0, 5) == 'HTTP_')

$headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;


return $headers;

</SPAN>
?>

好了,看看都打印出了啥吧

复制代码代码如下:

<?php
print_r(getallheaders());

获得结果:

复制代码代码如下:

Array
(
[Accept] => */*
[Accept-Language] => zh-cn
[Accept-Encoding] => gzip, deflate
[User-Agent] => Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727)
[Host] => localhost
[Connection] => Keep-Alive
)
参考技术C http://www.jb51.net/article/32644.htm
不知道这个是不是你要找的

JavaScript获取并保存http请求头信息

如题,打开js文件后获取HTTP请求头信息,并保存到txt文件html文件中

参考技术A

// ajax 对象
function ajaxObject() 
    var xmlHttp;
    try 
        // Firefox, Opera 8.0+, Safari
        xmlHttp = new XMLHttpRequest();
         
    catch (e) 
        // Internet Explorer
        try 
             xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
             catch (e) 
            try 
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
             catch (e) 
             alert("您的浏览器不支持AJAX!");
             return false;
            
        

    return xmlHttp;


// ajax post请求:
function ajaxPost ( url , data , fnSucceed , fnFail , fnLoading ) 
    var ajax = ajaxObject();
    ajax.open( "post" , url , true );
    ajax.setRequestHeader( "Content-Type" , "application/x-www-form-urlencoded" );
    ajax.onreadystatechange = function () 
        if( ajax.readyState == 4 ) 
            if( ajax.status == 200 ) 
                fnSucceed( ajax.responseText );
            
            else 
                fnFail( "HTTP请求错误!错误码:"+ajax.status );
            
        
        else 
            fnLoading();
        
    
    ajax.send( data );

以上是关于PHP 如何保存/打印 整个Http请求头和附带的post数据?的主要内容,如果未能解决你的问题,请参考以下文章

PHP发送请求头和接收打印请求头

php curl如何设置自定义请求头和打印请求头信息

PHP 获取请求里的 header字段

PHP如何打印出curl 模块交互的 http 请求与响应 header?

php如何修改http请求头

如何在Spring MVC中基于http请求头启用json的动态漂亮打印?