78模板网分享cms建站教程,提供网站模板、网站插件、办公模板等模板教程免费学习,找模板教程就上78模板网!

帝国cms 自动更新生成一次内容页

每分钟自动更新生成一次内容页(注:不是栏目或者列表...是文章)

最近做网站的时候碰到一个问题,每个页面都要更新,因为每个页面是直接获取新浪和淘宝的数据还有国外的一个网站,如果批量更新的话别人会直接封掉IP。用了论坛里面的计划任务功能。

那边提供了两种解决方案,但是弊端也是显而易见:

一种是开着后台,电脑要一直开着,另外一种要放首页等页面里面。我觉得这样做都太耗青春了!更苦逼的是无法达到我的目的,更新生成内容页。

那有没有更好的方法去做呢?

弄了半天终于找到了解决方案,写一段代码存为PHP文件,间隔一段时间后如果满足这个要求便自动生成内容页面,但是这个页面要持续的有人访问才行,这个好解决,可以找挂机的代刷网站。监控平台都可以实现。比如本人找的免费监控网站就是15分钟过来访问你,刚好可以利用起来,这是免费劳动力。

我不知道这样执行代码安不安全,如果每天都需要更新网站,那我觉得没有比这个更好的方法了。

废话就说到这里实现的方法:

你如果要操作,数据类型更我一样的话,只需要改动$ee2每组的条数,当然86400/$ee2,要整数的哦。

<?php

//路径一定要高对,不然找不到以下文件是实现不了,还会发生错误的。

require("../../class/connect.php");

require("../../class/db_sql.php");

require("../../class/functions.php");

require '../'.LoadLang("pub/fun.php");

require("../../class/t_functions.php");

require("../../data/dbcache/class.php");

require("../../data/dbcache/MemberLevel.php");

$link=db_connect();

$empire=new mysqlquery();

@set_time_limit(0);//防止时间过期

$num=1;//可以设置get获取参数

echo'相减的时间<br />';

echo $time_x=strtotime('now')-strtotime('today') ;//从凌晨开始算时间到现在为多少秒

$ee1=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_news"); //统计文章条数

$ee2=96;//每96条为一组

$ee3=fmod($ee1,$ee2);//余数

$ee4=$ee1/$ee2 ;

$ee5=floor($ee4);//商

if($ee3!=0){

$ee5=$ee5+1;//如果除不尽那么再多一组

}

echo '一共'.$ee1.'条'.$ee5.'组这是第'.$num.'组<br />';

$s_n=($num-1)*$ee2;

$s_nx=$ee2;

if($ee5==$num){

$s_nx=$ee2-($ee5*$ee2-$ee1);

}

$sql=$empire->query("select * from {$dbtbpre}ecms_news order by newstime limit $s_n,$s_nx");

$i=0;        //

while($r=$empire->fetch($sql)){//循环获取查询记录

$i1=$i*86400/$ee2;

$i2=($i+1)*86400/$ee2;

if($time_x>$i1&&$time_x<$i2){

$id=$r['id'];

GetHtml($r2['classid'],$id,$r2,0);

}

$i++;

}

db_close();

$empire=null;

?>

最后把这个文件的链接直接给监控平台去执行就OK了。

为什么要分组,如果数据是几万条那就得分组,像我这样15分钟一条要搞定2万条数据那得到猴年马月。因此如果是大数据就得分组来操作。

用这个方法还可以做很多事情,比如定时采集,定时截图什么的。

本文链接:http://78moban.cn/post/3018.html

版权声明:站内所有文章皆来自网络转载,只供模板演示使用,并无任何其它意义!

联系技术
文章删除 友链合作 技术交流群
1050177837
公众号
公众号
公众号
返回顶部