加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php 分析header页面跳转失败的几个原因

发布时间:2020-05-30 18:57:34 所属栏目:PHP 来源:互联网
导读:在使用php header函数进行页面跳转时,页面并没有成功跳转,导致跳转失败的原因到底有哪些呢?本文章向大家详细分析php header跳转失效的几种原因,感兴趣的朋友可以看一下。

首先我们先要了解php header函数是干什么的。PHP 中 header()函数的作用是给客户端发送头信息。

什么是头信息?

这里只作简单解释,详细的自己看http协议。


在 HTTP协议中,服务器端的回答(response)内容包括两部分:头信息(header) 和体内容,这里的头信息不是HTML中的部分,同样,体内容也不是< /BODY>。头信息是用户看不见的,里面包含了很多项,包括:服务器信息、日期、内容的长度等。而体内容就是整个HTML,也就是你所能看见的全部东西。

头信息有什么用呢?

头信息的作用很多,最主要的有下面几个:

1、跳转:

当浏览器接受到头信息中的 Location: xxxx 后,就会自动跳转到 xxxx 指向的URL地址,这点有点类似用 js 写跳转。但是这个跳转只有浏览器知道,不管体内容里有没有东西,用户都看不到。


2、指定网页的内容:

同样一个XML文件,如果头信息中指定:Content-type: application/xml 的话,浏览器会将其按照XML文件格式解析。但是,如果头信息中是:Content-type: text/xml 的话,浏览器就会将其看作存文本解析。(浏览器不是按照扩展名解析文件的)


php header跳转失败的原因:

我们在使用header跳转时,要注意一下几点,如果header跳转失败,可以从以下几点来分析原因:

location和“:”号间不能有空格,否则会出错.//xxx.com

在用header前不能有任何的输出,包括include的页面中标签“?>”后不能有空格.

PHP的 header 跳转之前不能有任何内容输出,因为PHP开始执行的时候就已经向浏览器送出HTTP头信息,之后就不再允许更改了.但是如果必须要在输出之后再处理header信息的话可以使用 ob_start() ob_end_flush() 来缓存一下要发送的内容,等到header继续再发送内容.或者一个更简单的办法,修改php.ini,找到 output_buffering=Off 修改为 output_buffering=4096.

最后需要注意的一点:php header跳转之后,要在header函数之后加上exit()来结束脚本执行,如果不加exit(),则会执行后面的语句。

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读