Właściwie mam dwa pytania.Nagłówek tylko pobieranie w php poprzez curl
(1) Czy istnieje ograniczenie mocy obliczeniowej lub przepustowości używane na serwerze zdalnym, jeśli odzyskać tylko nagłówki w przeciwieństwie do pobierania pełnego widoku przy użyciu php i zwijać?
(2) Ponieważ myślę, a może się mylę, że odpowiedź na pierwsze pytanie jest TAK, próbuję uzyskać daty ostatniej modyfikacji lub If-Modified-Since nagłówku pliku zdalnego tylko w celu porównania to z datą lokalnie przechowywanych danych, więc mogę, na wypadek gdyby została zmieniona, przechowywać ją lokalnie. Jednakże mój skrypt wydaje stanie pobrać ten kawałek informacji, mam NULL
, gdy uruchomię to:
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
}
}
W przypadku $header = curl_exec($curl)
jest wyświetlany dane uncomented, header, nawet jeśli nie mam o to i to w następujący sposób:
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
Na tej podstawie zwracana jest "ostatnia modyfikacja".
Co więc robię źle?
Należy zauważyć, że powyższy kod nie zwróci żadnych nagłówków , tylko informacje vars. Aby pobrać nagłówki, musisz dodać 'curl_setopt ($ curl, CURLOPT_HEADER, true);'. Nagłówki są jednak w formie tekstowej i należy je później przeanalizować. – Lukas