Vorrei inviare il comando HEAD di Hypertext Transfer Protocol a un server in PHP per recuperare l'intestazione, ma non il contenuto o un URL. Come faccio a farlo in modo efficiente?Qual è il modo più semplice per utilizzare il comando HEAD di HTTP in PHP?
Il caso di utilizzo più comune è quello di verificare la presenza di collegamenti Web non funzionanti. Per questo ho solo bisogno del codice di risposta della richiesta HTTP e non del contenuto della pagina. Ottenere pagine Web in PHP può essere fatto facilmente usando file_get_contents("http://...")
, ma ai fini del controllo dei collegamenti, questo è davvero inefficiente in quanto scarica l'intera contenuto della pagina/immagine/qualsiasi cosa.
Preferisco questa soluzione rispetto a quelle che usano curl, perché mi piace usare le funzioni integrate. Forse qualcun altro può commentare le prestazioni di ogni possibilità? – fuenfundachtzig
Si noti che questo genera un errore per i codici di risposta '401', mentre arricciamento fornisce la risposta effettiva. –
'stream_context_create()' può essere usato anche con 'file_get_contents()'. Forse 'get_headers()' è molto meglio combinato con 'stream_context_set_default()' al metodo della richiesta a
HEAD
. Vedi http://php.net/manual/es/function.get-headers.php – cybmeta