php header(location)容易被忽略小问题——exit
2017-06-08 19:08
190 查看
在header跳转后使用exit
PHP的header可以输出http头部信息,前提是,在header之前不能输出任何内容,因为所有的内容都作为http的body输出给客户端了,一旦有body的内容,就不可能再添加任何head部分的信息。header函数的一个常用的方式就是用来做转向,redirect。
比如,我需要转到某个地址,只要执行下述代码:
[php] view plain copy header('Location: http://write.blog.csdn.net');
浏览器会收到一个302的http状态码,告诉他这个内容已经被转移了。
重要的是,php会在调用header函数后,继续执行后面的代码,你可以用我的代码亲自试验一下:
[php] view
plain copy
header('Location: http://www.nowamagic.net/');
$fp = fopen('header.txt', 'w+');
fwrite($fp, date('Y-m-d H:i:s'));
肯定会执行到fwrite函数的,打开header.txt文件,检查时间!
对此,解决的办法是,要在每一个header函数后面加上exit,保证当前页面停止执行,进而转向location指定的地址。
为了避免到处都是exit,可以写一个专门用作转向的函数,比如:
[php] view
plain copy
function Redirect($strUrl) {
header('Location: ' . $strUrl);
exit;
}
另,为了避免在header之前输出body的内容,许多php框架都采用了php页面尾部不写?>的方式,因为有些人总习惯在?>后面添加一个换行,这真的是个不好的习惯。
相关文章推荐
- php header(location)容易被忽略小问题
- PHP中用header("Location: test.php")进行跳转时应注意的问题
- header("Location:login.php")应该注意的几个问题
- header("Location:login.php")应该注意的几个问题
- PHP获取上个月最后一天的一个容易忽略的问题
- php使用explode分割字符串新手容易忽略的问题
- php使用explode分割字符串新手容易忽略的问题
- PHP Header用于页面跳转要注意的几个问题总结
- 使用时容易忽略SQL Server的21个问题
- 使用时容易忽略SQL Server的21个问题
- 容易被忽略的细节(2):使用泛型类和泛型方法解决【动态类型】问题
- 软件架构设计时容易忽略的几个重要问题
- php出现Cannot modify header information问题的解决方法大全
- jdbc终极解惑~兼初学者在登录sql容易忽略的问题
- 看了,容易被忽略的细节(1):config文件的使用 ,我也谈谈这个简单的问题
- PHP Header用于页面跳转要注意的几个问题总结
- 使用时容易忽略SQL Server的21个问题
- vc中容易忽略的2个小问题
- php出现Cannot modify header information问题的解决方法大全
- .NET 开发中容易被忽略的问题--MDA