浏览器缓存设置

1 篇文章 0 订阅
1 篇文章 0 订阅
<?php
/**
 * 浏览器缓存
 * @param $_SERVER['HTTP_IF_MODIFIED_SINCE'] //检测文档是否被修改过
 * @param num $seconds_to_cache //时间数字,用来设置缓存时间 以s秒为单位
 */
$seconds_to_cache = 60*60*24*365*1;//缓存时间
if(isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])){//判断网页是否被修改过,如果有该值,则判断缓存时间又是否超过现在时间
	$modified_time = $_SERVER['HTTP_IF_MODIFIED_SINCE'];
	$now_time = strtotime($modified_time) + $seconds_to_cache;
	if(strtotime($modified_time) + $seconds_to_cache > time()) {//如果现在时间没有超过缓存的时间,跳转到304,并从缓存中读取数据
		header("HTTP/1.1 304 Not Modified", TRUE, 304); 
		exit;
	}else{//如果超过缓存时间,在header头信息中加入新的缓存信息
		$ts = gmdate("D, d M Y H:i:s", time() + $seconds_to_cache) . " GMT"; 
		header("last-modified:" . gmdate("d M Y H:i:s") . " GMT");
		header("Expires: $ts"); header("Pragma: cache"); 
		header("Cache-Control: max-age=$seconds_to_cache");
		//以下用来测试是否从缓存中读取数据,如果从缓存中读取数据,count.php中数字应该保持不变,否则每请求一次图片,count.php
		//中的数字加1
		header("content-type: image/jpg");
		echo file_get_contents('a.jpg');//测试图片
		$a = file_get_contents('count.php');//计数文件
		$a = $a + 1;
		file_put_contents('count.php',$a);
	}
}else{//如果未设该值,从文件读取并添加相关头信息
		$ts = gmdate("D, d M Y H:i:s", time() + $seconds_to_cache) . " GMT"; 
		header("last-modified:" . gmdate("d M Y H:i:s") . " GMT");
		header("Expires: $ts"); header("Pragma: cache"); 
		header("Cache-Control: max-age=$seconds_to_cache");

		header("content-type: image/jpg");
		echo file_get_contents('a.jpg');
		$a = file_get_contents('count.php');
		$a = $a + 1;
		file_put_contents('count.php',$a);
}
?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值