假如说有一个a.php文件,这个程序是采集其他网站的信息,当用户访问网页的时候会用ajax触发这个php程序进行采集,但是我不想让用户每次来的时候都进行采集,规定1个小时内的内容不变,一个小时后才进行采集,这个功能怎么实现?要进行缓存么?缓存文件用什么格式的?文件内的内容该怎么写?求大神们给个思路!
解决方案 »
- PHP页面调用PHP页面怎么写?
- 关于php的include的一道面试题?
- 小弟想学习php,哪位前辈可以给小弟介绍一下学习php很好的书或者学习视频
- php有没有一些关于数组处理的包装类(或库)?
- 用adodb类作数据库连接,支持多类型数据库(oracle和mysql)帮忙讨论 来者有分
- PHP菜鸟问题,初学者,大家多帮忙!
- 正则匹配任意字母但不包括...
- 帮忙看小程序
- 调用word 报错 说拒绝访问! 迷糊中
- 收索限制的问题,请教各位!
- 轻松解决Warning: Cannot modify header information – headers already sent by……
- php安装包如何做成和软件安装类似的步骤
如果目标是纯静态页面,是可以用 get_headers 获取最后修改时间来判断一下
如果目标是动态页面,你不取回来比较,就不知道是否改变了
<body>
<div id="msg"></div>
<script>
var xmlhttp;
if(window.ActiveXObject)
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else
{
xmlhttp=new XMLHttpRequest();
}
xmlhttp.open("POST", "a.php", true);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlhttp.send("data=1");
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState === 4 && xmlhttp.status === 200){
document.getElementById("msg").innerHTML=xmlhttp.responseText;
}
}
</script>
</body>
</html><?php
$time=time();
$time2=file_get_contents("time.dat");
if($time-3600>$time2){
file_put_contents("time.dat",$time);
$con=file_get_contents("http://www.baidu.com");
file_put_contents("content.dat",$con);
}else{
$con=file_get_contents("content.dat");
}
echo $con;
?>
或者生成一个锁文件 判断这个文件生成时间与当前时间是否相距1小时了