问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

php 如何获取 客户端http header

发布网友 发布时间:2022-04-28 07:26

我来回答

3个回答

懂视网 时间:2022-04-28 11:48

研究一晚上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;
 }
 }
 }//输出获取到的header
 return $headers;
 }

参考链接:http://blog.csdn.net/fdipzone/article/details/49518535

感谢大家的阅读,希望大家收益多多。

本文转自:https://blog.csdn.net/LJFPHP/article/details/78897951

推荐教程:《php教程》

热心网友 时间:2022-04-28 08:56

<?php
$dir=$HTTP_GET_VARS["dir"]; //.......取得上个页面传递来的路径
$file=$HTTP_GET_VARS["file"]; //.......取得传递来的文件名
$url=parse_url($HTTP_REFERER); /*......取得前一页面的URL地址,并将其放入一个数组中*/
if($url[host]!=$HTTP_HOST){echo "要下载本软件请到<a href=http://www.df365.org>东方小屋</a>";exit;} /*检查来源网站是不是自己的网站,如果不是,返回“要下载本……”*/
if(empty($dir))$dir="/"; //......如果路径名为空,则为指定根目录
if(empty($file)){echo "未指定要下载的文件!";exit;} /*如果文件名为空,返回“未指定……”*/
$rootdir="文件存放的根目录";//......你的下载路径根目录 
$realurl=$rootdir.$dir; //.......取得你的下载目录
chdir($realurl); //......将当前目录转到下载目录中
if(!file_exists($file)){echo "对不起,此链接已经失效,请在下载页面上向我们报告,谢谢!";exit;} //......测试文件是否存在
$filename=$file; 
//  发送文件头信息
header("Cache-control: private"); // fix for IE 
header("Content-Type: application/octet-stream"); 
header("Content-Length: ".filesize($filename)); 
header("Content-Disposition: attachment; filename=$filename"); 
$fp = fopen($filename, 'r'); // 以读取方式打开指定文件
fpassthru($fp); // ** CORRECT ** 以二进制方式读取文件
fclose($fp); // 关闭文件
?>

热心网友 时间:2022-04-28 10:14

可以通过PHP的预定义变量来获取,如下:

<?php
print_r($_SERVER); // HTTP 相关参数,即为客户端的header请求信息
?>

也可以参考PHP手册:http://php.net/manual/zh/reserved.variables.server.php

希望可以帮到你

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
企业培训学到了什么 培训感悟简短 有关培训的感悟 通过培训学到什么 培训你学到了什么 领导问培训学到什么怎么回复 Linux系统安装FTP服务器 Linux系统的网络文件共享 建筑的七盏明灯的内容简介 面向对象设计七大原则 简单说 交互设计七大定律 如何检验自己的服务器是否支持PHP 怎么查看服务器是否支持https 服务器安装了SSL证书,HTTPS却无法访问 显示:服务器不支持ssl,请检查服务器配置怎么办? http转为https后调用的php网页显示异常 电脑安装软件无法安全连接HTTPS连接? 可能是服务器无法请求https协议 可能未开启curl支持,请尝试开启curl支持,重启web服务器,如果问题仍未解 网站不支持https访问怎么办 PHP 符号 问题 PHP中的符号表示提问!高人指点,说完全点! php如何输出$符号? - PHP进阶讨论 PHP符号问题 PHP函数等或等于应该怎么表达 PHP中的等于号=和== php 不等于判断 PHP中“!==”与“!=”的区别是什么呀?? 用PHP在查询数据库时,不等于这个条件怎么写啊? PHP 数组不等于怎么写$where = array java和php里不等于符号是什么怎么写 php不等于是不是这样表达!=,大于或等于这样表达&gt;=??? PHP如何获取HTTPS响应头headers 如何获取请求的header头信息 请问PHP 怎样请求时编写头信息并且还能获得返回的头信息? php使用nginx如何获取请求头? php中的header函数 如何获取网页的header格式 php的header函数 php获取请求url时响应的报头信息几种方法 php中的header是什么意思 php中header()作用 如何用PHP来取 http header 中的变量 PHP转编码到UTF-8不成功 用php和mysql中文都是乱码,数据库都是繁体字,导出以后都是乱码,页面都是utf8,为什么啊 网站big5码写入数据库出现乱码! php 在apache下缓存文件写入失败 thinkphp腾讯服务器下,缓存文件写入失败,是什么原因? thinkphp 3.0 缓存文件写入失败 xp无任何网络提供程序接受指定的网络路径 windows xp无法访问windows server 2008 r2的共享文件夹,提示无任何网络提供程序接受指定的网络路径, XP访问不同网段的WIN7共享提示“无任何网络提供程序接受指定的网络路径”