php中header函数后是否应该有exit

php header后是否需要书写exit以终止程序,以前一直没有太在意,今天遇到个bug,才发现这还是个问题,特意写了段代码测试了一下,代码如下:

通常有以下三种,代码如下:

  1. Location: xxxx:yyyy/zzzz
  2. Content-Type: xxxx/yyyy
  3. Status: nnn xxxxxx

常用实例

1.实现重定向(状态码302),代码如下:

header(”Location: http://www.phpfensi.com”);
exit;
?>

例子代码如下:

  1. header("Location:http://www.phpfensi.com/");
  2. //exit();
  3. 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" );
?>