php實現(xiàn)統(tǒng)計網(wǎng)站在線人數(shù)的方法
更新時間:2015年05月12日 11:00:32 作者:vivi
這篇文章主要介紹了php實現(xiàn)統(tǒng)計網(wǎng)站在線人數(shù)的方法,通過獲取服務(wù)器端網(wǎng)絡(luò)參數(shù)及文本文件讀寫實現(xiàn)統(tǒng)計在線人數(shù)的功能,非常簡單實用,需要的朋友可以參考下
本文實例講述了php實現(xiàn)統(tǒng)計網(wǎng)站在線人數(shù)的方法。分享給大家供大家參考。具體實現(xiàn)方法如下:
<?php
function getIpAddress() { // 取得當(dāng)前用戶的IP地址
if (getenv('HTTP_CLIENT_IP')) {
$ip = getenv('HTTP_CLIENT_IP');
} elseif (getenv('HTTP_X_FORWARDED_FOR')) {
$ip = getenv('HTTP_X_FORWARDED_FOR');
} elseif (getenv('REMOTE_ADDR')) {
$ip = getenv('REMOTE_ADDR');
} else {
$ip = $_SERVER['REMOE_ADDR'];
}
return $ip;
}
function writeover($filename,$data,$method = 'w',$chmod = 0){
$handle = fopen($filename, $method);
!handle && die("文件打開失敗");
flock($handle, LOCK_EX);
fwrite($handle, $data);
flock($handle, LOCK_UN);
fclose($handle);
$chmod && @chmod($filename, 0777);
}
function count_online_num($time, $ip) {
$fileCount = './count.txt';
$count = 0;
$gap = 900; //15分鐘不刷新頁面就
if (!file_exists($fileCount)) {
$str = $time . "\t" . $ip . "\r\n";
writeover($fileCount, $str, 'w', 1);
$count = 1;
} else {
$arr = file($fileCount);
$flag = 0;
foreach($arr as $key => $val) {
$val= trim($val);
if ($val != "") {
list($when, $seti) = explode("\t", $val);
if ($seti ==$ip) {
$arr[$key] = $time . "\t" . $seti;
$flag = 1;
} else {
$currentTime = time();
if ($currentTime - $when > 900) {
unset($arr[$key]);
}else{
$arr[$key]=$val;
}
}
}
}
if ($flag == 0) {
array_push($arr, $time . "\t" . $ip);
}
$count = count($arr);
$str = implode("\r\n", $arr);
$str.="\r\n";
writeover($fileCount, $str, 'w', 0);
unset($arr);
}
return $count;
}
$time = time();
$ip = getIpAddress();
$online_num = count_online_num($time,$ip);
echo $online_num;
?>
希望本文所述對大家的php程序設(shè)計有所幫助。
相關(guān)文章
php函數(shù)array_merge用法一例(合并同類數(shù)組)
合并同類型數(shù)組,array_merge ()函數(shù)的簡單例子,供大家參考2013-02-02
php常用字符串輸出方法分析(echo,print,printf及sprintf)
這篇文章主要介紹了php常用字符串輸出方法,結(jié)合實例形式分析了echo、print、printf及sprintf輸出字符串的具體用法與相關(guān)使用技巧,需要的朋友可以參考下2016-07-07
php圖像處理函數(shù)imagecopyresampled用法詳解
這篇文章主要介紹了php圖像處理函數(shù)imagecopyresampled用法,結(jié)合實例形式詳細分析了imagecopyresampled函數(shù)的功能、參數(shù)、使用方法,需要的朋友可以參考下2016-12-12
PHP中開發(fā)XML應(yīng)用程序之基礎(chǔ)篇 添加節(jié)點 刪除節(jié)點 查詢節(jié)點 查詢節(jié)
XML(可擴展的標(biāo)注語言)是一種W3C標(biāo)準,主要用于Web應(yīng)用程序和服務(wù)器之間實現(xiàn)容易的交互、數(shù)據(jù)的存儲與使用2010-07-07
在PHP中實現(xiàn)Javascript的escape()函數(shù)代碼
在 Javascript 中,可以利用 escape/unescape() 和 eval_r() 函數(shù)進行簡單的轉(zhuǎn)碼處理,讓普通的 URL 網(wǎng)址看起來比較怪異,使那些令人討厭的搜索爬蟲無法辨認你希望隱藏的資源。2010-08-08

