使用 PHP header进行页面跳转中出现的疑惑

  在php中进行页面跳转时,常会用到header(); 而其最常用的两种用法,一是重定向;二是设置页面状态为"404未找到页面"。

  •   header(); 重定向很简单。 通过location:“页面需要跳转到的地址”,即可在打开当前页面时实现页面的跳转。

  如:以下代码实现了,打开当前页面后直接显示php官网页面的效果。

header("location: http://www.php.net"); // 重定向页面
exit;
  •   header(); 设置页面状态404却让新手有些费解。

  具体实现方式:

  

header('HTTP/1.1 404 Not Found'); // 出现找不到网页的提示信息
header("status: 404 Not Found");

  主要费解的原因有一下几点:

  1. 若在一个新建的php文件中,输入以上代码,页面会直接出现404 Not Found 提示。

  2. 然而,当我尝试在这两行代码后面添加一行输出语句后,发现404 Not Found提示消失,输出语句也正常显示。

header('HTTP/1.1 404 Not Found');  
header("status: 404 Not Found");
echo ("hello");

但是打开f12,调出开发者工具后,发现了报错。

  通过在网上搜索,发现原来 header('HTTP/1.1 404 Not Found'); 与 其后面的输出语句并不冲突。(原来以为两者之间会存在冲突,即使用了该语句后,之后的代码就不会被执行。)

  即使在前面使用了header('HTTP/1.1 404 Not Found');后面的php代码仍会被执行。只不过查看台中会有报错提示。

  • 最后,关于使用 header("location:"); 实现重定向页面时,网上提出了以下几点建议:

  1、location和":"号间不能有空格,否则会出错。

  2、在用header前不能有任何的输出,包括空格 (这个我亲自试过了,发现即使加了空格,或者输出语句依然能够实现跳转 对此存在疑问)

  3、header后的PHP代码还会被执行。

 

posted @ 2017-05-17 15:21  AimeeGao  阅读(1201)  评论(0编辑  收藏  举报