Je voudrais envoyer la commande HEAD du protocole de transfert hypertexte à un serveur en PHP pour récupérer l'en-tête, mais pas le contenu ou une URL. Comment puis-je le faire de manière efficace?Quel est le moyen le plus simple d'utiliser la commande HEAD de HTTP en PHP?
Le cas d'utilisation probablement le plus courant consiste à vérifier les liens Web morts. Pour cela, j'ai seulement besoin du code de réponse de la requête HTTP et non du contenu de la page. Obtenir des pages Web en PHP peut être fait facilement en utilisant file_get_contents("http://...")
, mais dans le but de vérifier les liens, c'est vraiment inefficace car il télécharge le contenu de la page entière/image/peu importe.
Je préfère cette solution à celles qui utilisent curl, parce que j'aime utiliser les fonctions intégrées. Peut-être que quelqu'un d'autre peut commenter sur la performance de chaque possibilité? – fuenfundachtzig
Notez que cela provoquera une erreur pour les codes de réponse '401', alors que curl vous fournira la réponse réelle. –
'stream_context_create()' peut aussi être utilisé avec 'file_get_contents()'. Peut-être que 'get_headers()' est bien mieux combiné avec 'stream_context_set_default()' à la méthode de la requête à
HEAD
. Voir http://php.net/manual/es/function.get-headers.php – cybmeta