Maison > Article > développement back-end > Comment puis-je récupérer uniquement les en-têtes en PHP en utilisant cURL ?
Récupération d'en-tête uniquement via cURL en PHP
Cet article répond à deux questions concernant l'utilisation de cURL en PHP pour récupérer uniquement les en-têtes au lieu de données d'une page complète, axées sur l'efficacité du traitement et les défis de mise en œuvre spécifiques.
Efficacité du traitement
Oui, il y a une réduction de la puissance de traitement et de la consommation de bande passante sur le serveur distant lors de la récupération uniquement des en-têtes par rapport à la récupération de la page entière. En effet, le serveur peut éviter la surcharge liée à la génération et à l'analyse du contenu HTML, ce qui entraîne une charge plus légère.
Récupération de la date de modification du fichier
Pour récupérer la dernière modification date (en-tête Last-Modified) ou l'en-tête If-Modified-Since d'un fichier distant, les étapes suivantes peuvent être suivies :
<?php class URIInfo { public $info; public $header; private $url; public function __construct($url) { $this->url = $url; $this->setData(); } public function setData() { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $this->url); curl_setopt($curl, CURLOPT_FILETIME, true); curl_setopt($curl, CURLOPT_NOBODY, true); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HEADER, true); $this->header = curl_exec($curl); $this->info = curl_getinfo($curl); curl_close($curl); } public function getFiletime() { return $this->info['filetime']; } } $filetime = (new URIInfo('http://www.example.com/file.xml'))->getFiletime(); if ($filetime != -1) { echo date('Y-m-d H:i:s', $filetime); } else { echo 'filetime not available'; } ?>
Cette approche utilise une classe pour encapsuler la fonctionnalité permettant de récupérer les informations d'en-tête et extraire l'en-tête Last-Modified.
Défis d'implémentation
Le code d'origine que vous avez fourni a tenté d'obtenir la date de la dernière modification en utilisant curl_getinfo($header), ce qui est incorrect. curl_getinfo() doit être utilisé avec le handle cURL ($curl) pour récupérer les informations d'en-tête. De plus, l'utilisation de CURLOPT_FILETIME devrait être suffisante pour récupérer la date de dernière modification.
En conclusion, la récupération d'en-tête uniquement à l'aide de cURL en PHP peut potentiellement réduire la charge du serveur tout en vous permettant d'accéder à des informations d'en-tête spécifiques. En suivant les directives décrites ci-dessus, vous pouvez implémenter efficacement cette fonctionnalité dans votre code.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!