È possibile inviare una richiesta http solo per ottenere l'ora dell'ultima modifica?

StackOverflow https://stackoverflow.com/questions/1806686

  •  05-07-2019
  •  | 
  •  

Domanda

Invece del file stesso?

Modifica

Meglio con una demo in PHP?

È stato utile?

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)

  1. If-Modified-Since
  2. If-None-Match
  3. 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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top