Maison > Article > développement back-end > Comment récupérer efficacement la date de dernière modification d'un fichier distant à l'aide de la récupération en-tête uniquement de cURL ?
Récupération d'en-tête uniquement en PHP via cURL
Pour une récupération efficace des métadonnées de fichiers, telles que la date de dernière modification, envisagez d'utiliser l'en-tête de cURL. seule fonction de récupération. Cette méthode peut réduire considérablement la puissance de traitement et la consommation de bande passante sur le serveur distant.
Pour récupérer uniquement les en-têtes, vous pouvez définir les options suivantes dans votre requête cURL :
curl_setopt($curl, CURLOPT_HEADER, true); curl_setopt($curl, CURLOPT_NOBODY, true);
Cela indique à cURL pour envoyer une requête HEAD, qui demande au serveur de répondre avec uniquement les informations d'en-tête HTTP, en omettant le corps réel de la réponse.
Récupération de la date de dernière modification
À Pour obtenir la date de la dernière modification, vous pouvez utiliser curl_getinfo() pour récupérer les informations FILETIME du handle cURL. Voici un exemple :
$curl = curl_init(); curl_setopt($curl, CURLOPT_URL, "http://url/file.xml"); curl_setopt($curl, CURLOPT_HEADER, true); curl_setopt($curl, CURLOPT_FILETIME, true); curl_setopt($curl, CURLOPT_NOBODY, true); curl_exec($curl); $filetime = curl_getinfo($curl, CURLINFO_FILETIME); // Returns timestamp of last modification curl_close($curl);
Exemple de code
Voici un exemple plus complet qui récupère et affiche la date de dernière modification d'un fichier distant à l'aide de cURL :
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']; } // Other functions can be added to retrieve other information. } $uri_info = new URIInfo('http://example.com/index.html'); $filetime = $uri_info->getFiletime(); if ($filetime != -1) { echo date('Y-m-d H:i:s', $filetime); } else { echo 'Filetime not available'; }
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!