ConFoo 2025

header_remove

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

header_removeEvvelce tanımlanmış başlıkları siler

Açıklama

header_remove(?string $isim = null): void

header() işleviyle evvelce tanımlanmış isim başlığını veya tüm başlıkları siler.

Bağımsız Değişkenler

isim

Silinecek başlığın ismi. null verilirse, evvelce tanımlanmış tüm başlıklar silinir.

Bilginize: Harf büyüklüğüne duyarsızdır.

Dönen Değerler

Hiçbir değer dönmez.

Sürüm Bilgisi

Sürüm: Açıklama
8.0.0 isim artık null olabiliyor.

Örnekler

Örnek 1 - Belli bir başlığı silmek

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

Yukarıdaki örnek şuna benzer bir çıktı üretir:

X-Bar: Baz

Örnek 2 - Atanmış tüm başlıkları silmek

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

Yukarıdaki örnek şuna benzer bir çıktı üretir:


Notlar

Dikkat

Bu işlev PHP tarafından tanımlanmış çerezler, oturum ve X-Powered-By başlıkları dahil tüm başlıkları siler.

Bilginize:

Başlıklar sadece onları destekleyen bir SAPI kullanımdaysa erişilebilir ve çıktılanabilir olacaktır.

Ayrıca Bakınız

  • header() - Ham bir HTTP başlığı gönderir
  • headers_sent() - Başlıklar gönderilmiş mi, gönderilmişse nerede gönderilmiş diye bakar

add a note

User Contributed Notes 4 notes

up
14
Saeed Khamseh
13 years ago
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!
up
3
Anonymous
9 years ago
expose_php is php.ini only!

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

works:
header_remove('x-powered-by');
up
0
luis dot angelino at laweb dot com dot br
6 months ago
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
up
-2
jake at qzdesign dot co dot uk
6 years ago
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
);
?>
To Top