Ce face get_headers
get_headers trimite o cerere către adresa dată și returnează antetele primite: primul element este linia de stare (de exemplu HTTP/1.1 200 OK), urmată de Content-Type, Server, Location etc.
Cu $associative = true, antetele sunt indexate după nume. Dacă adresa face redirecționări, funcția le urmează și pune în rezultat antetele tuturor răspunsurilor, unul după altul. Antetele care apar de mai multe ori devin tablouri.
Implicit cererea este de tip GET. Pentru a nu descărca tot conținutul, poți trimite un context cu metoda HEAD.
Parametri
| Parametru | Descriere |
|---|---|
$url |
Adresa verificată. |
$associative |
Opțional. true pentru un tablou cu numele antetelor drept chei. |
$context |
Opțional. Un context creat cu stream_context_create (metodă, limită de timp, antete). |
Ce returnează
Tabloul cu antete, sau false dacă cererea eșuează.
Exemple
Exemplul 1: Antetele unei pagini
<?php
print_r(get_headers("https://www.dexblog.ro/"));
Rezultat real (necesită conexiune la internet)
Array
(
[0] => HTTP/1.1 200 OK
[1] => Server: nginx
[2] => Date: Mon, 19 Oct 2026 10:58:31 GMT
[3] => Content-Type: text/html; charset=UTF-8
[4] => Transfer-Encoding: chunked
[5] => Connection: close
[6] => Vary: Accept-Encoding
[7] => Link: <https://www.dexblog.ro/wp-json/>; rel="https://api.w.org/"
[8] => Strict-Transport-Security: max-age=31536000
)
Exemplul 2: Verificarea linkurilor stricate
<?php
$context = stream_context_create(["http" => ["method" => "HEAD", "timeout" => 5]]);
$linkuri = [
"https://www.dexblog.ro/invata/php/",
"https://www.dexblog.ro/pagina-care-nu-exista/",
"http://dexblog.ro/",
];
foreach ($linkuri as $link) {
$antete = get_headers($link, false, $context);
echo $link . " => " . ($antete === false ? "fără răspuns" : $antete[0]) . "\n";
}
Rezultat real (necesită conexiune la internet)
https://www.dexblog.ro/invata/php/ => HTTP/1.1 200 OK
https://www.dexblog.ro/pagina-care-nu-exista/ => HTTP/1.1 404 Not Found
http://dexblog.ro/ => HTTP/1.1 301 Moved Permanently
Exemplul 3: Unde duce o redirecționare
Cu antete asociative, Location conține toate adresele prin care a trecut cererea.
<?php
$antete = get_headers("http://dexblog.ro/", true);
print_r($antete["Location"]);
echo "Răspunsul final: " . $antete[2];
Rezultat real (necesită conexiune la internet)
Array
(
[0] => https://dexblog.ro/
[1] => https://www.dexblog.ro/
)
Răspunsul final: HTTP/1.1 200 OK
Greșeli frecvente
- Te uiți doar la
$antete[0]pentru o adresă care redirecționează. Primul element este codul primului răspuns (de exemplu 301), nu al paginii finale. - Apelezi
get_headersfără limită de timp pentru multe linkuri. Un singur server lent blochează tot scriptul. Folosește un context cutimeout.
Comenzi înrudite
curl_init / curl_setopt / curl_exec: Pregătește o cerere HTTP către alt server, de exemplu un API. Împreună cu curl_setopt și curl_exec, trimite cererea și primește răspunsul.http_response_code: Setează sau citește codul de stare HTTP al răspunsului: 200, 404, 500 etc.header: Trimite un antet HTTP către browser: redirecționare, tipul conținutului, descărcare de fișier, cache.parse_url: Împarte un URL în componente: protocol, domeniu, port, cale, interogare și fragment.