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 ?

Barbara Streisand
Libérer: 2024-11-16 02:51:03
original
662 Les gens l'ont consulté

How to Efficiently Retrieve Last Modified Date of a Remote File using cURL's Header-Only Retrieval?

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);
Copier après la connexion

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);
Copier après la connexion

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';
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal