You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HTML后函数内调用header()是否可行?是否触发错误或循环?

关于PHP header()函数的几个问题解答

1. 首行调用header("Location: $url")是否会引发无限重定向循环?

会的。因为$url拼接的是当前请求的域名和完整URI,跳转后服务器收到的请求和原请求完全一致,PHP会再次执行这段跳转代码,形成无限重定向循环。浏览器通常会在多次跳转后自动终止,但逻辑上这是死循环。

2. 将header调用放入函数,在HTML代码之后定义函数,表单提交时调用该函数是否可行?是否会触发错误?

这种写法不可行,必然触发错误。因为HTML代码在函数定义之前已经输出到浏览器,HTTP响应的头部已经被发送,此时再通过函数调用header(),PHP会抛出"Cannot modify header information - headers already sent"的错误。不管是直接调用还是通过函数调用,只要有任何输出(包括HTML、空格、换行)产生,就无法再修改HTTP头部。

3. HTML后直接调用header()肯定会报错的判断是否正确?

这个判断完全正确。HTTP协议要求响应头部必须在响应体(HTML内容属于响应体)之前发送,一旦有任何输出(哪怕是一个空格),PHP会自动发送默认的HTTP头部,之后再调用header()就无法修改头部,必然触发报错。


内容的提问来源于stack exchange,提问作者yobebix932

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 19:11:30