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; ?>);