php,header("ContentType: text/html; charset=UTF8");,header("Location: https://www.example.com");,
“在PHP中,我们可以使用header()
函数来发送原始的HTTP标头,这个函数必须在任何实际的输出之前调用(echo、print等)。
以下是一些常见的自定义headers的例子:
1、设置内容类型 (ContentType)
header('ContentType: application/json');
2、设置字符集 (Character Set)
header('ContentType: text/html; charset=utf8');
3、重定向到另一个URL
header('Location: https://www.example.com'); exit();
4、设置缓存控制
header('CacheControl: nocache, mustrevalidate'); // HTTP/1.1 header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past
5、设置Cookie
setcookie("user", "Alex Porter", time()+3600);
注意:在使用header()
函数时,必须确保没有任何输出被发送到浏览器,包括空格、换行和HTML标签,否则,你会得到一个"headers already sent"的错误。
下面是一个简单的介绍,展示了在PHP中自定义HTTP headers时可能用到的一些常见header名称和示例:
Header 名称 | 描述 | 示例代码 |
ContentType | 指定响应的MIME类型。 | header('ContentType: text/html; charset=utf8'); |
ContentDisposition | 提供一个建议的文件名和指示该响应是否打算让用户将其作为附件。 | header('ContentDisposition: attachment; filename="file.txt"'); |
Location | 用于重定向,指定新的URL位置。 | header('Location: http://www.example.com/'); |
CacheControl | 指定响应的缓存机制。 | header('CacheControl: nocache, nostore, mustrevalidate'); |
Pragma | 提供特定的缓存指令,与CacheControl 一同使用。 | header('Pragma: nocache'); |
Expires | 指定缓存文档的过期时间。 | header('Expires: Thu, 01 Dec 1994 16:00:00 GMT'); |
XPoweredBy | 显示服务器或技术栈的标识。 | header('XPoweredBy: PHP/7.4'); |
XContentTypeOptions | 告诉浏览器不允许MIME类型嗅探。 | header('XContentTypeOptions: nosniff'); |
AccessControlAllowOrigin | 允许指定的来源访问资源,用于CORS。 | header('AccessControlAllowOrigin: *'); |
ContentLanguage | 指定响应内容的语言。 | header('ContentLanguage: zhCN'); |
SetCookie | 设置HTTP cookie。 | header('SetCookie: user_id=123; path=/; HttpOnly'); |
注意:在使用header()
函数之前,确保没有向浏览器发送任何输出(包括空格或HTML标签),否则会导致错误,通常这个函数在PHP脚本的最顶部调用,如果需要发送多个header,请确保每个header()
调用之间没有任何输出,如果发生错误,可以使用headers_sent()
函数检查是否有header已经被发送。
示例:
<?php // 确保脚本没有输出任何内容 if (!headers_sent()) { header('ContentType: text/html; charset=utf8'); header('XPoweredBy: PHP/7.4'); // 其他自定义headers... } else { // 处理错误情况 die('Headers already sent.'); } ?>
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/714371.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复