php中header函数后是否应该有exit
php header后是否需要书写exit以终止程序,以前一直没有太在意,今天遇到个bug,才发现这还是个问题,特意写了段代码测试了一下,代码如下:
通常有以下三种,代码如下:
- Location: xxxx:yyyy/zzzz
- Content-Type: xxxx/yyyy
- Status: nnn xxxxxx
常用实例
1.实现重定向(状态码302),代码如下:
header(”Location: http://www.phpfensi.com”);
exit;
?>
例子代码如下:
- header("Location:http://www.phpfensi.com/");
- //exit();
- file_put_contents($_SERVER['DOCUMENT_ROOT'].DIRECTORY_SEPARATOR."n.txt",'php程序员教程网',LOCK_EX);
如果证明php文件运行过程中如果碰到有header("Location:某个页面URL");这种语句,会直接跳转到另一个页面,但是这里的跳转并没有影响当前php文件的继续执行,也就是是说php header跳转之后,当前页面的脚本会继续执行,如果需要终止脚本运行,需要加exit()或者die().
但对于有些用法就不需要了.
404代码如下:
header('HTTP/1.1 404 Not Found');
header("status: 404 Not Found");
?>
301代码如下:
Header( "HTTP/1.1 301 Moved Permanently" ) ;
Header( "Location: www.phpfensi.com" );
?>