PHP - header
Třída
Metoda - header
Funkce header()
slouží k odesílání HTTP hlavičky.
Pozor:
- Funkci je třeba zavolat před jakýmkoliv výpisem (problém mohou
způsobit například i bílé znaky před
<?php
). Pro vyhnutí se problémům, je vhodné použít výstupní bufferování. - Funkce nepřerušuje provádění kódu, tudíž pokud je to potřeba
(například při přesměrování), je nutné jej ukončit ručně (například
pomocí
exit
).
Procedurální
- function header (string $string, bool $replace = true, int $http_response_code) : void
Parametry
Název | Datový typ | Výchozí hodnota | Popis |
---|---|---|---|
$string | string | Řetězec pro nastavení hlavičky. 1. Nastavení HTTP hlavičky Slouží pro nastavení stavového kódu. Pokud například vybíráte z databáze článek na základě zadané URL adresy a uživatel zadá adresu, která neexistuje, měli byste zobrazit chybovou stránku a poslat v hlavičce stavový kód indikující, že stránka nebyla nalezena. Předejdete tím problémům s nesprávnou indexací obsahu. <?php header("HTTP/1.0 404 Not Found"); 2. Přesměrování Slouží k přesměrování na jinou stránku. Pokud nebyl nastaven stavový kód 201 nebo 3xx, vrátí stavový kód 302 (nalezeno). Pozor: Přesměrování nezruší vykonávání kódu, je třeba jej zrušit manuálně. <?php header("Location: https://www.itnetwork.cz/"); exit; | |
$replace | bool | true | Indikuje, zda v případě již existující hlavičky se stejným typem, má
být hodnota této hlavičky nahrazena nebo zda má být přidána nová
hlavička stejného typu. Výchozí hodnota <?php header('WWW-Authenticate: Negotiate'); header('WWW-Authenticate: NTLM', false); |
$http_response_code | int | Vynutí přepsání návratového kódu HTTP na zadanou hodnotu. V případě, že nebyla zadána žádná hlavička, tento parametr nemá žádný efekt. |
Návratové hodnoty
Nevrací žádnou návratovou hodnotu.
Příklady
Nastavení chybové hlavičky 404:
<?php header('HTTP/1.0 404 Not Found');
Přesměrování na https://www.itnetwork.cz/ s kódem 301 (trvale přesunuto):
<?php header('Location: https://www.itnetwork.cz/', true, 301);
Nastavení typu obsahu aktuální odpovědi:
<?php header('Content-type: application/pdf');
Vypnutí cachování na straně prohlížeče:
<?php header('Expires: Thu, 1 Jan 1997 01:00:00 GMT'); header('Cache-Control: no-cache'); header('Pragma: no-cache');
HTTP autentizace:
<?php header('WWW-Authenticate: Basic realm=""'); header('HTTP/1.0 401 Unauthorized');
Špatně: Výpis textu před nastavením hlavičky:
<?php
echo('Text');
header('HTTP/1.0 404 Not Found');
Správně: Výpis textu před nastavením hlavičky s bufferováním:
<?php
ob_start();
echo('Text');
header('HTTP/1.0 404 Not Found');
$buffer = ob_get_clean();
echo($buffer);