In realtà ho due domande.Intestazione solo recupero in php tramite arricciatura
(1) C'è qualche riduzione della potenza di elaborazione o larghezza di banda utilizzato su server remoto se recuperare solo le intestazioni in contrapposizione a tutta pagina il recupero utilizzando php e curl?
(2) Dal momento che penso, e potrei sbagliarmi, che la risposta alla prima domanda è SI, sto cercando di ottenere l'ultima data di modifica o If-Modified-Since intestazione del file remoto solo al fine di confrontare con la data-ora dei dati memorizzati localmente, quindi posso, nel caso sia stato modificato, memorizzarlo localmente. Tuttavia, il mio script non sembra in grado di recuperare quel pezzo di informazioni, ottengo NULL
, quando corro questo:
class last_change {
public last_change;
function set_last_change() {
$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);
// $header = curl_exec($curl);
$this -> last_change = curl_getinfo($header);
curl_close($curl);
}
function get_last_change() {
return $this -> last_change['datetime']; // I have tested with Last-Modified & If-Modified-Since to no avail
}
}
In caso $header = curl_exec($curl)
viene vengono visualizzati i dati uncomented, intestazione, anche se non ne hanno fatto richiesta ed è come segue:
HTTP/1.1 200 OK
Date: Fri, 04 Sep 2009 12:15:51 GMT
Server: Apache/2.2.8 (Linux/SUSE)
Last-Modified: Thu, 03 Sep 2009 12:46:54 GMT
ETag: "198054-118c-472abc735ab80"
Accept-Ranges: bytes
Content-Length: 4492
Content-Type: text/xml
In base a ciò, viene restituito 'Last-Modified'.
Quindi, cosa sto sbagliando?
E 'da notare che il codice di cui sopra non restituirà alcun intestazioni , solo le informazioni vars. Per recuperare anche le intestazioni devi aggiungere 'curl_setopt ($ curl, CURLOPT_HEADER, true);'. Le intestazioni sono in forma di testo di lamentela e devono essere analizzate in seguito. – Lukas