скопление создает блокировки файла стиля Unix и доступно на Perl большей части ОС, работает. Однако блокировки скопления являются консультацией только.
редактирование: подчеркнутый, что скопление портативно
HTTP_IF_MODIFIED_SINCE
- правильный способ сделать это. Если вы его не получаете, убедитесь, что в Apache включены mod_expires
и mod_headers
и они работают правильно. Заимствовано из комментария на PHP.net :
$last_modified_time = filemtime($file);
$etag = md5_file($file);
// always send headers
header("Last-Modified: ".gmdate("D, d M Y H:i:s", $last_modified_time)." GMT");
header("Etag: $etag");
// exit if not modified
if (@strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $last_modified_time ||
@trim($_SERVER['HTTP_IF_NONE_MATCH']) == $etag) {
header("HTTP/1.1 304 Not Modified");
exit;
}
// output data
$ _ SERVER ['HTTP_IF_MODIFIED_SINCE']
обычно пуст, когда register_globals
выключен.
Проверьте, так ли это, и если да, попробуйте getenv ('HTTP_IF_MODIFIED_SINCE')