Est-il possible d'envoyer une requête http uniquement pour obtenir la dernière heure modifiée?
Question
Au lieu du fichier lui-même?
MODIFIER
Le mieux avec une démo en PHP?
La solution
<?php
// Get Headers
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://example.com/');
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$response = curl_exec($ch);
// Process Headers
$headerLines = explode("\r\n", $response);
foreach ($headerLines as $headerLine) {
$headerLineParts = explode(': ', $headerLine);
if (count($headerLineParts) >= 2) {
$headers[$headerLineParts[0]] = $headerLineParts[1];
}
}
echo $headers['Last-Modified'];
?>
Autres conseils
Oui. Le " HEAD " Cette méthode ne renvoie que les en-têtes de réponse et non les données réelles.
Vous pouvez utiliser la fonction get_headers de php
$a = get_headers('http://sstatic.net/so/img/logo.png');
print_r($a);
Dans votre requête HTTP, vous devez ajouter l'un de ces attributs d'en-tête et vous pourrez recevoir un 304 (dernière modification)
- Si-modifié-depuis
- If-None-Match
- Si-non modifié-depuis
Andrei a raison, HEAD obtiendra uniquement les en-têtes. Ma suggestion ne renverra que l'en-tête et aucun corps si les conditions sont remplies. Si le contenu a été mis à jour, le corps contiendra les nouvelles informations.
Vous devez écrire un service pour traiter la demande http, extraire la date de dernière modification du fichier demandé et renvoyer la date en réponse.