A function allow you to check your page whether it's been modified or not since it was last displayed.
It can also give you a "304" status.
This snippet is by
inhttps://css-tricks.com/snippets/php/intelligent-php-cache-control/
A function allow you to check your page whether it's been modified or not since it was last displayed.
It can also give you a "304" status.
This snippet is by
inhttps://css-tricks.com/snippets/php/intelligent-php-cache-control/
| <?php | |
| function notModifiedCheck() | |
| { | |
| //get the last-modified-date of this very file | |
| $lastModified=filemtime(__FILE__); | |
| //get a unique hash of this file (etag) | |
| $etagFile = md5_file(__FILE__); | |
| //get the HTTP_IF_MODIFIED_SINCE header if set | |
| $ifModifiedSince=(isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) ? $_SERVER['HTTP_IF_MODIFIED_SINCE'] : false); | |
| //get the HTTP_IF_NONE_MATCH header if set (etag: unique file hash) | |
| $etagHeader=(isset($_SERVER['HTTP_IF_NONE_MATCH']) ? trim($_SERVER['HTTP_IF_NONE_MATCH']) : false); | |
| //set last-modified header | |
| header("Last-Modified: ".gmdate("D, d M Y H:i:s", $lastModified)." GMT"); | |
| //set etag-header | |
| header("Etag: $etagFile"); | |
| //make sure caching is turned on | |
| header('Cache-Control: public'); | |
| //check if page has changed. If not, send 304 and exit | |
| if (@strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE'])==$lastModified || $etagHeader == $etagFile) | |
| { | |
| header("HTTP/1.1 304 Not Modified"); | |
| exit; | |
| } | |
| //your normal code | |
| echo "This page was last modified: ".date("Y.m.d H:i:s",time()); | |
| } |