首页
版块
教程
交流
话题
官网
搜索
登录
注册
首页
>
服务器运维
>
PHP搅拌机
>
PHP header跳转详细分析
回复
« 返回列表
yuanhou
U途骑士
UID
29430
粉丝
1
关注
0
发帖数
1
铜币
12枚
威望
12点
贡献
0点
加关注
写私信
阅读:
3623
回复:
0
PHP header跳转详细分析
楼主
#
更多
只看楼主
倒序阅读
发布于:2014-06-12 01:51
保存
对于这个函数没怎么深入了解过,一般是用于设置字符编码或者页面跳转,设置编码就不细说了。
以前对于header跳转只是知道跳转前严禁任何输出,否则的话会出错,但是今天看到一篇帖子让我从新认识了header:
1、要求header前没有任何输出
但 是很多时候在header前我们已经输出了好多东 西了,此时如果再次header的话,显然是出错的,在这里我们启用了一个ob的概念,ob的意思是在服务器端先存储有关输出,等待适当的时机再输出,而 不是像现在这样运行一句,输出一句,发现header语句就只能报错了。
具体的语句有: ob_start(); ob_end_clean();ob_flush();.........
2、在header("Location:")后要及时exit
否则他是会继续执行的,虽然在浏览器端你看不到相应的数据出现,但是如果你进行抓包分析的话,你就会看到下面的语句也是在执行的。而且被输送到了浏览器客户端,只不过是没有被浏览器执行为html而已(浏览器执行了header进行了转向操作)。
所以,标准的使用方法是:
ob_start();
........
if ( something ){
ob_end_clean();
header("Location: yourlocation");
exit;
else{
..........
ob_flush(); //可省略
要想在header前有输出的话,可以修改php.ini文件
output_handler =mb_output_handler
或 output_handler =on
Output Control 函数可以让你自由控制脚本中数据的输出。它非常地有用,特别是对于:当你想在数据已经输出后,再输出文件头的情况。输出控制函数不对使用 header() 或 setcookie(), 发送的文件头信息产生影响,只对那些类似于 echo() 和 PHP 代码的数据块有作用。
喜欢
6
评分
0
最新喜欢:
回复
发帖
回复
« 返回列表
普通帖
您需要登录后才可以回帖,
登录
或者
注册
返回顶部
关闭
最新喜欢