如果您想移除有关 PHP 版本的头部信息(x-powered-by),您可以使用
header_remove('x-powered-by');
或者,如果您没有安装 PHP 5.3,您可以使用 "header" 命令执行相同的操作
header('x-powered-by:');
不要忘记字符串末尾的 ":" 字符!
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
header_remove — 移除之前设置的头部
不返回任何值。
版本 | 描述 |
---|---|
8.0.0 |
name 现在可以为可空类型。 |
示例 #1 移除特定头部。
<?php
header("X-Foo: Bar");
header("X-Bar: Baz");
header_remove("X-Foo");
?>
上面的示例将输出类似于以下内容:
X-Bar: Baz
示例 #2 移除所有之前设置的头部。
<?php
header("X-Foo: Bar");
header("X-Bar: Baz");
header_remove();
?>
上面的示例将输出类似于以下内容:
此函数将移除 PHP 设置的所有头部,包括 Cookie、会话和 X-Powered-By
头部。
注意:
头部只有在使用支持它们的 SAPI 时才可用且可输出。
如果您想移除有关 PHP 版本的头部信息(x-powered-by),您可以使用
header_remove('x-powered-by');
或者,如果您没有安装 PHP 5.3,您可以使用 "header" 命令执行相同的操作
header('x-powered-by:');
不要忘记字符串末尾的 ":" 字符!
如果您正在使用
#!/usr/local/bin/php
您可以在其末尾添加 "-q",头部将被移除,因为 header_remove 不会移除 "Content-type"
#!/usr/local/bin/php -q
从命令行进程调用时,此函数在传递特定要移除的头部时不会执行任何操作,但在不带参数调用以移除所有头部时,它仍然可以正常工作。
因此,在进行单元测试或在其他一些测试工具中执行时,如果要测试的代码可能会调用 `header_remove()`,并且加载了 UOPZ 和 XDebug 扩展,您可以在以下情况下使用以下代码更有效地测试预期的头部是否已设置[您可以通过检查 `xdebug_get_headers()` 在运行要测试的代码后返回的数组来完成此操作,因为 `headers_list()` 尽管头部实际上按正常方式存储在内部,但仍然不起作用]
<?php
uopz_set_return(
'header_remove',
function($name = null) {
if ($name !== null) {
$pattern = '/^' . preg_quote($name, '/') . ':/i';
$headers = array_filter(
xdebug_get_headers(),
function($header) use($pattern) {
return !preg_match($pattern, $header);
}
);
}
// 这可以移除所有头部,只是不能移除单个头部。
header_remove();
if ($name !== null) {
foreach ($headers as $header) {
header($header);
}
}
},
true
);
?>