是否在标题(“位置:”)调用后调用exit是否重要?

时间:2011-07-22 00:55:15

标签: php

在我在php.net上发现exit this post之前,我似乎无法找到答案。

  

发送`Location:'标题后,PHP 继续解析,而header()调用下面的所有代码仍将被执行。

这有效吗?

为了进一步提出这个问题,如果它有效,那么将exit保留下去(并让其余代码运行)会带来什么好处?

2 个答案:

答案 0 :(得分:5)

是的,这是有效的。 header()函数只是向浏览器发送一个标题以及页面的其余部分,告诉浏览器重定向。如果您不希望脚本继续运行,那么您应该执行exitdie

在某些情况下,您可能希望脚本继续运行,具体取决于脚本。您可能正在跟踪页面命中或某些内容,您可能会将代码插入到每个页面底部的数据库中。如果您希望它在重定向之前跟踪匹配,那么您不希望提前exit

您可能希望继续运行代码的另一种情况是,如果您有定时重定向标头,并希望向用户显示某些内容,例如Redirect to: http://xxxxxx in 5 seconds。因此,他们有机会在重定向之前查看浏览器的位置。如果您将它们重定向到完全不同的网站,您可能只想这样做。

在大多数情况下,您确实需要exit,因为在这种情况下您不希望向浏览器输出任何内容,而额外的代码只会减慢您的重定向。

答案 1 :(得分:0)

是的,它有效,因为标头与其他内容一起发送。脚本执行以及内容和标题发送给用户之后。