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(),则会执行后面的语句。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
