Chciałbym wysłać polecenie HEAD protokołu hipertekstowego do serwera w PHP, aby pobrać nagłówek, ale nie treść lub adres URL. Jak zrobić to w skuteczny sposób?Jaki jest najłatwiejszy sposób użycia polecenia HEAD HTTP w PHP?
Prawdopodobnie najczęstszym przypadkiem jest sprawdzanie martwych łączy internetowych. Do tego potrzebuję tylko kodu odpowiedzi żądania HTTP, a nie treści strony. Uzyskiwanie stron internetowych w PHP można łatwo wykonać za pomocą file_get_contents("http://...")
, ale w celu sprawdzenia linków, jest to naprawdę nieefektywne, ponieważ pobiera całą zawartość strony/obraz/cokolwiek.
Preferuję to rozwiązanie nad tymi, które używają curl, ponieważ lubię używać wbudowanych funkcji. Może ktoś inny może wypowiedzieć się na temat skuteczności każdej możliwości? – fuenfundachtzig
Należy zauważyć, że spowoduje to zgłoszenie błędu dla kodów odpowiedzi "401", a curl - rzeczywistą odpowiedź. –
'stream_context_create()' może być również użyte z 'file_get_contents()'. Może 'get_headers()' jest znacznie lepiej połączone z 'stream_context_set_default()' z metodą żądania do
HEAD
. Zobacz http://php.net/manual/es/function.get-headers.php – cybmeta