重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
给你个思路:
成都创新互联公司专注于石楼企业网站建设,成都响应式网站建设公司,商城网站建设。石楼网站建设公司,为石楼等地区提供建站服务。全流程定制网站制作,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务
1、建一个php文件,文件里面写需要更新数据库的代码。
2、给服务器建立定时任务,liunx的话需要命令开启任务,详情都能网上搜。windows的话可以建立一个任务计划程序(开始菜单可以搜索),里面设置好启动时间及要通过php程序运行的php文件,详情也可以网上搜索出来。
3、另外附上一段php执行文件(也就是用此段代码执行你的数据库操作php文件)
?php
/**
* 定时计划任务
*/
$option = '';//附加参数
$header = '';//请求头
$type = 'GET';//请求类型
$url = '......';//请求地址
$curl = curl_init (); // 启动一个CURL会话
curl_setopt ( $curl, CURLOPT_URL, $url ); // 要访问的地址
curl_setopt ( $curl, CURLOPT_SSL_VERIFYPEER, FALSE ); // 对认证证书来源的检查
curl_setopt ( $curl, CURLOPT_SSL_VERIFYHOST, FALSE ); // 从证书中检查SSL加密算法是否存在
curl_setopt ( $curl, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)' ); // 模拟用户使用的浏览器
if (! empty ( $option )) {
$option = json_encode ( $option );
curl_setopt ( $curl, CURLOPT_POSTFIELDS, $option ); // Post提交的数据包
}
curl_setopt ( $curl, CURLOPT_TIMEOUT, 30 ); // 设置超时限制防止死循环
//设置请求头
if($header){
curl_setopt($curl,CURLOPT_HTTPHEADER,$header);
}
curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, 1 ); // 获取的信息以文件流的形式返回
curl_setopt ( $curl, CURLOPT_CUSTOMREQUEST, $type );
$result = curl_exec ( $curl ); // 执行操作
curl_close ( $curl ); // 关闭CURL会话
基本思路 md5加密和生成32位的字符串
mt_rand 生成指定范围的随机数
time 可获得时间戳
用随机数 + 当前时间戳可以获得较不会重复的随机数
代码如下:
1
$rand = md5(time() . mt_rand(0,1000));
变量的话 在页面执行完 内存就释放了 所以肯定不能让他每天自动加1
所以只有以下几种方法 1 存在数据库里(不错的方法) 2 存在文件里(很安全,而且只有一个文件的情况下IO没什么压力) 3 存在缓存里(缓存不是很可靠,就算你设置成永远不过期也有可能丢失)
确定存储方法后 需要计划任务来执行(计划任务就是规定每天什么时候,或者每隔多长时间,执行一个脚本,如:一个PHP文件)
WINDOWS:写好要执行的脚本 创建windows计划任务,定时执行命令 (PHP目录)x:\xxx\php\php.exe -f x:\aaa\bbb\script.php(执行脚本的目录)
LINUX:我没写过 和WINDOWS差不多 用crontab命令来执行
script.php里就写你变量加1这个操作,如数据库的字段加1 或者文件里的数字加1
如果只是网页上显示,不需要存储人数据库
则设置初始值$count 还有初始日期$date,
假设$count=10,$date='2015-07-18';
然后进行操作,方法和上面大同小异
$now = strtotime(date('Y-m-d', time()));
if($now strtotime($date))
{
$add = intval(($now-strtotime($date))/(24*3600));
$count += 10*$add;
}
可以将其封装成函数
function count($count,$date){
$now = strtotime(date('Y-m-d', time()));
if($now strtotime($date))
{
$add = intval(($now-strtotime($date))/(24*3600));
$count += 10*$add;
}
return $count;
}
如果要加随机数那么就需要加上random函数,而且需要存储用来判定的$date,可以用cookies存储也可以用session存储