研究一晚上php关于自定义header头信息的问题。看了很多代码,但是由于本人才疏学浅。连测试demo都没跑通。实在是惭愧。这里看到个获取header信息的方法,挺不错的,记录一下。
我们可以在$_SERVER中获取header数据,自定义的数据都是使用HTTP_作为前缀的,所以可以把HTTP_前缀的数据读出。
public function get_all_header(){// 忽略获取的header数据。这个函数后面会用到。主要是起过滤作用$ignore = array('host','accept','content-length','content-type');$headers = array();//这里大家有兴趣的话,可以打印一下。会出来很多的header头信息。咱们想要的部分,都是‘http_'开头的。所以下面会进行过滤输出。/*var_dump($_SERVER);exit;*/foreach($_SERVER as $key=>$value){if(substr($key, 0, 5)==='HTTP_'){//这里取到的都是'http_'开头的数据。//前去开头的前5位$key = substr($key, 5);//把$key中的'_'下划线都替换为空字符串$key = str_replace('_', ' ', $key);//再把$key中的空字符串替换成‘-’$key = str_replace(' ', '-', $key);//把$key中的所有字符转换为小写$key = strtolower($key);//这里主要是过滤上面写的$ignore数组中的数据if(!in_array($key, $ignore)){$headers[$key] = $value;}}}//输出获取到的headerreturn $headers;}
越学习越发现自己到底有多菜。加油。各位圣诞节快乐!