X-Git-Url: https://dev.renevier.net/gitweb.cgi?p=syp.git;a=blobdiff_plain;f=items.php;h=e7a97231572a689dc0d4185706e66d2a7aab7b33;hp=c36318379964d0790564a47587ccf7b4416ef27a;hb=41c341624c16607ac710aac446cc0ead3c53671b;hpb=bf5384b48ad82e3487329bb7987bd5a49d4bf330 diff --git a/items.php b/items.php index c363183..e7a9723 100644 --- a/items.php +++ b/items.php @@ -6,9 +6,22 @@ require_once ("./inc/settings.php"); require_once ("./inc/utils.php"); require_once ("./inc/db/mysql.php"); -function main ($features) { +function headers_callback ($output) { + $etag = md5 ($output); + if ((isset ($_SERVER ["HTTP_IF_NONE_MATCH"])) && + ($_SERVER ["HTTP_IF_NONE_MATCH"] == $etag)) { + header ("HTTP/1.1 304 Not Modified"); + exit (); + } - header ("Cache-control: no-cache"); + header ("Content-type: application/vnd.google-earth.kml+xml"); + header ("Cache-control: must-revalidate"); + header (sprintf ("ETag: %s", $etag)); + + return $output; +} + +function main ($features) { echo ' @@ -70,6 +83,8 @@ try { } catch (Exception $e) { exit ("server error"); } -header ("Content-type: application/vnd.google-earth.kml+xml"); + +ob_start ("headers_callback"); main ($features); +ob_end_flush () ?>