public static function cache_limiter($type = 'nocache')
{
$expires = DateTime::create('+' . session_cache_expire() . ' seconds')->format(DateTime::RFC1123);
$last_modified = DateTime::create()->format(DateTime::RFC1123);
switch ($type) {
case 'public':
header('Expires: ' . $expires, true);
header('Cache-Control: public, max-age=' . $expires, true);
header('Last-Modified: ' . $last_modified, true);
break;
case 'private_no_expire':
header('Cache-Control: private, max-age=' . $expires . ', pre-check=' . $expires, true);
header('Last-Modified: ' . $last_modified, true);
break;
case 'private':
header('Expires: Thu, 19 Nov 1981 08:52:00 GMT', true);
header('Cache-Control: private max-age=' . $expires . ', pre-check=' . $expires, true);
header('Last-Modified: ' . $last_modified, true);
break;
case 'nocache':
header('Expires: Thu, 19 Nov 1981 08:52:00 GMT', true);
header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0', true);
header('Pragma: no-cache', true);
break;
case '':
return;
break;
}
}