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!header_remove
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
header_remove
Референца за `function.header-remove.php` со подобрена типографија и навигација.
header_remove
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
header_remove — Отстрани претходно поставени заглавја
= NULL
Отстранува HTTP заглавје претходно поставено со користење на header().
Параметри
name-
Името на заглавјето што треба да се отстрани. Кога
null, сите претходно поставени заглавја се отстрануваат.Забелешка: Овој параметар не прави разлика помеѓу големи и мали букви.
Вратени вредности
Не се враќа вредност.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.0.0 |
name сега е null.
|
Примери
Пример #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();
?>Горниот пример ќе прикаже нешто слично на:
Белешки
Оваа функција ќе ги отстрани all заглавјата поставени од PHP, вклучувајќи колачиња, сесија и X-Powered-By headers.
Забелешка: Заглавијата ќе бидат достапни и прикажани само кога се користи SAPI што ги поддржува.
Види Исто така
- header() се изведуваат по редослед на повикување.
- headers_sent() - Земи или постави HTTP код за одговор
Белешки од корисници 5 белешки
expose_php is php.ini only!
this won't work:
ini_set('expose_php',0);
works:
header_remove('x-powered-by');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<?php
header_remove('Server');
phpinfo();
?>
In Apache php 8.5.6 it will only delete in the HTTP Headers Information section but the header is sent by Apache and cannot be override by php.
You can find it in the browser console, in the network section.
So you will need other various methods..
https://stackoverflow.com/questions/9000853/apache-how-to-hide-server-version-and-operation-system-from-usersWhen 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
);
?>