php访问量统计代码
㈠ php 怎么做浏览量的统计用的是thinkphp框架
可以提供简单的方法:(基于你用的是tp,对于做cache缓存也不影响统计,毕竟是访问了控制器方法)
第一:当访问这个页面的时候,对应的有控制器,在控制器中做一个操作,每被访问这个页面一次给数据库那个字段加1(这个不精准)
第二:获取访问页面人的ip地址,在数据库存记录,每此访问此页面也就是控制器 就做同样的操作,前提是判断这个人的ip是否存在,存在证明已访问过。(稍微精确点)
当然还有不少其他的方法,这里是比较简单的。希望可以帮助到
㈡ PHP如何统计在线人数
原理:根据不同的IP统计出当前有多少人在线。
实现方式:可以用数据库,也可以用文本。
我这里用了文本实现。
$user_online="count.php";//保存人数的文件
touch($user_online);//如果没有此文件,则创建
$timeout=30;//30秒内没动作者,认为掉线
$user_arr=file_get_contents($user_online);
$user_arr=explode('#',rtrim($user_arr,'#'));
print_r($user_arr);
$temp=array();
foreach($user_arras$value){
$user=explode(",",trim($value));
if(($user[0]!=getenv('REMOTE_ADDR'))&&($user[1]>time())){//如果不是本用户IP并时间没有超时则放入到数组中
array_push($temp,$user[0].",".$user[1]);
}
}
array_push($temp,getenv('REMOTE_ADDR').",".(time()+($timeout)).'#');//保存本用户的信息
$user_arr=implode("#",$temp);
//写入文件
$fp=fopen($user_online,"w");
flock($fp,LOCK_EX);//flock()不能在NFS以及其他的一些网络文件系统中正常工作
fputs($fp,$user_arr);
flock($fp,LOCK_UN);
fclose($fp);
echo"当前有".count($temp)."人在线";
㈢ php如何统计访问单篇文章的访问量
先给储存相应文章的数据表增加一个记录访问量的字段。
1, 可以每访问一次,字段数量加一,但是这样会不准确,因为只要刷新一下,就会记录一下。
2, 为了防止上面的情况发生,可以记录访问者的IP地址,重复的IP地址访问,只记录一次。
3, 但是,一个IP地址,只记录一次,也有问题,比如,一个局域网,多个访问者,共用一个IP地址,这样也会记录不准确。所以最好,一个IP地址一定时间内访问记录一次。这样相对好一点。
4, 不过,即使记录IP地址,但是也有可能有恶意的用户通过切换IP,或者通过刷票软件来刷访问量。这些问题,还需要更深的研究一下,怎么应对。
比如:
<?php
$ip = $_SERVER['REMOTE_ADDR'];
//循环对比数据表中储存的IP,如果IP存在,不再记录
$query = mysql_query("select * contetns where ip = '".$ip."'");
if(mysql_num_rows($query) > 0){
//IP存在
}else{
//记录访问量
}
?>
㈣ php怎么统计访问次数
那就给你个简单的吧,就只记录用户浏览器 session_id 的。把代码加入你的首页 PHP文档 即可
<?php
session_start();
$log = 'log.txt';
if(!$handle = fopen($log,"a+")){ echo '日志文件打开失败'; exit(); }
if(!fwrite($handle,session_id().chr(13))){ echo '数据写入失败'; exit(); }
fclose($handle);
$file = file_get_contents($log);
$content = explode(chr(13),$file);
echo "本页被访问次数: <b>".(count($content)-1)." </b>";
?>
㈤ 如何用PHP 做pv和uv
PV(page view)
页面访问量,即此页面(站点)被打开过多少次,包括站点各个页面跳转同时也包括刷新,如:我从首页index.html进入,进入到contact.html页面则算2个PV,当我刷新contact.html则算3个PV。UV(Unqie Vistor)
独立访客数,指的是不同的、通过互联网访问、浏览一个网页的自然人,一般情况下,是使用COOKIE进行区分。比如,您现在访问了网络首页,会给网络首页UV加1,随后您关闭了浏览器,接着您的朋友又用您的电脑访问了网络首页,此时,UV是不会变的,因为浏览器的COOKIE没变,其周期为24小时,24小时候还会变的。PV的统计比较容易了,每次加载页面都加1,通过使用mysql增加一条具体日期的访问数据,然后update更改数据的PV值,即页面加载一次PV+1.
UV,写入COOKIE,同样要进行今日是否有记录进行判断,统计全站的话,直接记录一个COOKIE,然后在访问的时候,查询是否存在COOKIE即可,同上保存到数据库中按日期统计。
㈥ php流量统计功能的实现代码
流量统计功能
显示效果:
总访问量:399
今日流量:14
昨日流量:16
本代码仅供学习交流,其中必有不妥之处。请见谅!
--
--
表的结构
`mycounter`
--
复制代码
代码如下:
CREATE
TABLE
`mycounter`
(
`id`
int(11)
NOT
NULL
auto_increment,
`Counter`
int(11)
NOT
NULL,
`CounterLastDay`
int(10)
default
NULL,
`CounterToday`
int(10)
default
NULL,
`RecordDate`
date
NOT
NULL,
PRIMARY
KEY
(`id`)
)
ENGINE=InnoDB
DEFAULT
CHARSET=gbk
AUTO_INCREMENT=2
;
函数过程如下:
复制代码
代码如下:
<?PHP
public
function
ShowMyCounter(){
//定义变量
$IsGone
=
FALSE;
//读取数据
$querysql
=
"SELECT
*
FROM
`mycounter`
WHERE
id
=
Ƈ'
";
$queryset
=
mysql_query($querysql);
$row
=
mysql_fetch_array($queryset);
//获得时间量
$DateNow
=
date('Y-m-d');
$RecordDate
=
$row['RecordDate'];
$DateNow_explode
=
explode("-",$DateNow);
$RecordDate_explode
=
explode("-",$RecordDate);
//判断是否已过去一天
if(
$DateNow_explode[0]
>
$RecordDate_explode[0])
$IsGone
=
TRUE;
else
if(
$DateNow_explode[0]
==
$RecordDate_explode[0]
){
if(
$DateNow_explode[1]
>
$RecordDate_explode[1]
)
$IsGone
=
TRUE;
else
if(
$DateNow_explode[1]
==
$RecordDate_explode[1]
){
if(
$DateNow_explode[2]
>
$RecordDate_explode[2]
)
$IsGone
=
TRUE;
}else
BREAK;
}else
BREAK;
//根据IsGone进行相应操作
IF($IsGone)
{
$RecordDate
=
$DateNow;
$CounterToday
=
0;
$CounterLastDay
=
$row['CounterToday'];
$upd_sql
=
"update
mycounter
set
RecordDate
=
'$RecordDate',CounterToday
=
'$CounterToday',CounterLastDay
=
'$CounterLastDay'
WHERE
id
=
Ƈ'
";
mysql_query($upd_sql);
}
//再次获取数据
$querysql
=
"SELECT
*
FROM
`mycounter`
WHERE
id
=
Ƈ'
";
$queryset
=
mysql_query($querysql);
$Counter
=
$row['Counter'];
$CounterToday
=
$row['CounterToday'];
$CounterLastDay
=
$row['CounterLastDay'];
if($row
=
mysql_fetch_array($queryset)
){
if(
$_COOKIE["user"]
!=
"oldGuest"
){
$Counter
=
++$row['Counter'];
$CounterToday
=
++$row['CounterToday'];
$upd_sql
=
"update
mycounter
set
counter
=
'$Counter',CounterToday
=
'$CounterToday'
WHERE
id
=
Ƈ'
";
$myquery
=
mysql_query($upd_sql);
}
echo
"总访问量:".$Counter;
echo
"
";
echo
"今日流量:".$CounterToday;
echo
"
";
echo
"昨日流量:".$CounterLastDay;
}else{//如果数据库为空时,相应的操作
}
}
?>
当然,需要在文件第一行开始写出如下代码:
复制代码
代码如下:
<?PHP
session_start();
if(
!isset($_COOKIE["user"])
){
setcookie("user","newGuest",time()+3600);
}else
{
setcookie("user","oldGuest");
}
?>
㈦ html的统计访客人数的代码
静态页面的程序本身是不能调用数据库来实现当前页面访问量统计的,包括实现被访问次数、访问次数增加等功能。但是静态页面如果没有这么一个功能,却又总觉得比动态页面少了些什么。
通过js后台ajax请求修改访问数。
基于jquery:
<script>
$(function() {
$.get('update.php?id=1',{r:Math.random()});
//当然$.post()、$.ajax()等都可以咯。
//然后要记得加一个随机数,因为如果不加的话,有的浏览器会认为是同一个请求,然后不请求。
});
</script>
这样写:
<script src="update.php?id=1"></script>
经测试,这样也是可行的。
至于文章的id,在静态化的过程中,可以直接赋值到页面要请求的网址参数后。
update.php的话,就是连接数据库,通过传过来的文章id,更新访问量的处理咯。
如果要实现在静态页面马上显示更新的数目的话:
方法一需要在ajax请求后调用回调函数,然后update.php返回新的访问量,然后在回调函数中定位到显示访问量位置,替换成新的访问量。
代码实现:
$(function() {
$.get('update.php?id=1',{r:Math.random()},function(num) {
$('#hit').html(num);
});
});
方法二则需要在update.php中,添加一句话:
document.write(<?php echo $num; ?>);