欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

基于IP的简单网站访问量统计(已更新版优化SQL数据库)

程序员文章站 2024-02-10 08:49:16
...
基于IP的简单网站访问量统计,同一ip下一天只算一次的访问量 代码如下
mysql 代码

create table ipcount(
ip int(10) primary key not null

auto_increment,
nowdate varchar(255),
nowdatec varchar(255),
ip varchar(255)
)


b]控制器代码[[/b]

public function ipcount(){
$ip=get_client_ip(); //获取客户端IP
ini_set('date.timezone','Asia/Shanghai');//设置时区
$date=date('Y-m-d');//获取当前时间
$yesterday=date("Y-m-d",strtotime("-1 day")); //获取昨天时间
$yesterrow=M('ipcount')->field('nowdatec')->where('nowdate="'.$yesterday.'"')->select();
$yesterdayc=0;
for ($i=0;$i $yesterdayc+=$yesterrow[$i]['nowdatec'];
}
$row=M('ipcount')->field('ip')->where('nowdate="'.$date.'"')->select();//查找今天的记录
$n=1;
$add=array(
'nowdatec'=>$n,
'nowdate'=>$date,
'ip'=>$ip,
);
if(empty($row)){//判断并添加记录
M('ipcount')->add($add);
}
$iprow=M('ipcount')->field('ip')->where('ip like "%'.$ip.'%" and nowdate="'.$date.'"')->select();//查找今天的ip记录
$ipcount=$row[0]['ip'];
if(empty($iprow)){ //判断并更新IP和统计记录
$ipcount=$ipcount.$ip;
$row1=M('ipcount')->field('nowdatec')->where('nowdate="'.$date.'"')->select();
foreach($row1 as $cd){
$dd= $cd['nowdatec'];
}

$dd+=1;
$save=array(
'nowdatec'=>$dd,
'nowdate'=>$date,
'ip'=>$ipcount,
);
M('ipcount')->where('nowdate="'.$date.'"')->save($save); //判断并更新IP和统计记录
}
$nowrow=M('ipcount')->field('nowdatec')->where('nowdate="'.$date.'"')->select();
$nowsun=0;
for ($i=0;$i $nowsun+=$nowrow[$i]['nowdatec'];
}
if(!empty($nowsun)){
echo '今天访问量:',$nowsun,'';//判断输出记录
}else{
echo '今天访问量:0';
};
$rows=M('ipcount')->field('nowdatec')->select();
$sun=0;
for ($i=0;$i $sun+=$rows[$i]['nowdatec'];
}

if(!empty($yesterdayc)){
echo '昨天访问量:',$yesterdayc,'';//判断输出记录
}else{
echo '昨天访问量:0';
}

if(!empty($sun)){
echo '总访问量:',$sun,'';//判断输出记录
}else{
echo '总访问量:0';
}





}

AD:真正免费,域名+虚机+企业邮箱=0元