È possibile inviare una richiesta http solo per ottenere l'ora dell'ultima modifica?
Domanda
Invece del file stesso?
Modifica
Meglio con una demo in PHP?
Soluzione
<?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'];
?>
Altri suggerimenti
Sì. "HEAD" Il metodo restituisce solo le intestazioni di risposta e non i dati effettivi.
Puoi usare la funzione get_headers di php
$a = get_headers('http://sstatic.net/so/img/logo.png');
print_r($a);
Nella tua richiesta HTTP devi aggiungere uno qualsiasi dei questi attributi di intestazione, e potresti ricevere un 304 (ultima modifica)
- If-Modified-Since
- If-None-Match
- Se-non modificato-Since
Andrei ha ragione, HEAD otterrà solo le intestazioni. Il mio suggerimento restituirà solo l'intestazione e nessun corpo se le condizioni sono soddisfatte. Se il contenuto è stato aggiornato, il corpo conterrà le nuove informazioni.
È necessario scrivere un servizio per gestire la richiesta http ed estrarre l'ultima data modificata per il file richiesto e restituire la data in risposta.