header_remove

(PHP 5 >= 5.3.0)

header_removeRemove previously set headers

Description

void header_remove ([ string $name ] )

Removes an HTTP header previously set using header().

Parameters

name

The header name to be removed.

Note: This parameter is case-insensitive.

Return Values

No value is returned.

Examples

Example #1 Unsetting specific header.

<?php
header
("X-Foo: Bar");
header("X-Bar: Baz");
header_remove("X-Foo"); 
?>

The above example will output something similar to:

X-Bar: Baz

Example #2 Unsetting all previously set headers.

<?php
header
("X-Foo: Bar");
header("X-Bar: Baz");
header_remove(); 
?>

The above example will output something similar to:

Notes

Caution

This function will remove all headers set by PHP, including cookies, session and the X-Powered-By headers.

Note:

Headers will only be accessible and output when a SAPI that supports them is in use.

See Also

Коментарии

Автор:
if you want to remove header information about php version (x-powered-by), you can use:

header_remove('x-powered-by');

alternatively, if you don't have php 5.3 installed, you can do the same thing using "header" command:

header('x-powered-by:');

don't forget the ':' character at the end of the string!
2011-02-24 13:53:15
http://php5.kiev.ua/manual/ru/function.header-remove.html
Автор:
You should ini_set("expose_php", 0); or set it in your php.ini to Off, instead of using this to remove X-Powered-By header.
2015-03-09 00:07:55
http://php5.kiev.ua/manual/ru/function.header-remove.html
Автор:
expose_php is php.ini only!

this won't work:
ini_set('expose_php',0);

works:
header_remove('x-powered-by');
2015-08-27 15:46:22
http://php5.kiev.ua/manual/ru/function.header-remove.html
When called from a command-line process, this function does nothing when passed a specific header to remove, but it does nonetheless work properly when called with no arguments to remove all headers.

Thus, when unit-testing or executing in some other test harness, if the code you are testing may call `header_remove()`, with the UOPZ and XDebug extensions loaded, you could use the following in order to more effectively test that the expected headers are set [which you would do by inspecting the array returned by `xdebug_get_headers()` after running the code under test, as `headers_list()` does not work despite the headers actually being stored internally as normal]:

<?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);
        }
      );
    }
   
// This works to remove all headers, just not individual headers.
   
header_remove();
    if (
$name !== null) {
      foreach (
$headers as $header) {
       
header($header);
      }
    }
  },
 
true
);
?>
2018-05-30 01:57:43
http://php5.kiev.ua/manual/ru/function.header-remove.html
If you are using this:

#!/usr/local/bin/php

You can add "-q" at the end of it and the headers will be removed, beacuse header_remove will not remove "Content-type"

#!/usr/local/bin/php -q
2024-06-03 14:31:37
http://php5.kiev.ua/manual/ru/function.header-remove.html

    Поддержать сайт на родительском проекте КГБ