主頁 > 知識(shí)庫 > PHP基于cookie實(shí)現(xiàn)統(tǒng)計(jì)在線人數(shù)功能示例

PHP基于cookie實(shí)現(xiàn)統(tǒng)計(jì)在線人數(shù)功能示例

熱門標(biāo)簽:打開百度地圖標(biāo)注 智能電銷語音機(jī)器人資訊 海南外呼系統(tǒng)方案 蘇州外呼系統(tǒng)有效果嗎 山東電銷卡外呼系統(tǒng)原理是什么 地圖標(biāo)注怎么做商戶驗(yàn)證 兼職做地圖標(biāo)注好賺錢嗎 亳州企業(yè)外呼系統(tǒng) 400 電話 辦理

本文實(shí)例講述了PHP基于cookie實(shí)現(xiàn)統(tǒng)計(jì)在線人數(shù)功能。分享給大家供大家參考,具體如下:

online.php文件:

?php
/*
  @ PHP 在線人數(shù)統(tǒng)計(jì)程序
  Copyright (c) www.vgot.cn by Pader 1:25 2009年1月7日
  Homepage:http://www.vgot.cn
  QQ: 270075658
  How to use it: script src="online.php">/script>
  note: 一般獨(dú)立在線人數(shù)統(tǒng)計(jì)程序都是統(tǒng)計(jì)在線的IP數(shù),而這并不準(zhǔn)確
  例如局域網(wǎng)的訪問者,比如公司,學(xué)校機(jī)房和網(wǎng)吧,雖然內(nèi)網(wǎng)IP不同,但是外網(wǎng)IP都是一樣
  如果同一個(gè)局域網(wǎng)的無論多少人人訪問你的網(wǎng)站則只被認(rèn)為是一個(gè)人
  這個(gè)小巧的程序解決了此問題,它以電腦為單為,每臺(tái)電腦便算一個(gè)訪問者
  當(dāng)然因?yàn)槭褂玫氖荂OOKIE,如果你在同一臺(tái)電腦上使用兩種不同核心的瀏覽器訪問那就別當(dāng)別論了
*/
$filename = 'online.txt'; //數(shù)據(jù)文件
$cookiename = 'VGOTCN_OnLineCount'; //cookie名稱
$onlinetime = 600; //在線有效時(shí)間,單位:秒 (即600等于10分鐘)
$online = file($filename); 
$nowtime = time(); 
$nowonline = array();
/*
  @ 得到仍然有效的數(shù)據(jù)
*/
foreach($online as $line) {
  $row = explode('|',$line);
  $sesstime = trim($row[1]);
  if(($nowtime - $sesstime) = $onlinetime) { //如果仍在有效時(shí)間內(nèi),則數(shù)據(jù)繼續(xù)保存,否則被放棄不再統(tǒng)計(jì)
    $nowonline[$row[0]] = $sesstime; //獲取在線列表到數(shù)組,會(huì)話ID為鍵名,最后通信時(shí)間為鍵值
  }
}
/*
  @ 創(chuàng)建訪問者通信狀態(tài)
    使用cookie通信
    COOKIE 將在關(guān)閉瀏覽器時(shí)失效,但如果不關(guān)閉瀏覽器,此 COOKIE 將一直有效,直到程序設(shè)置的在線時(shí)間超時(shí)
*/
if(isset($_COOKIE[$cookiename])) { //如果有COOKIE即并非初次訪問則不添加人數(shù)并更新通信時(shí)間
  $uid = $_COOKIE[$cookiename];
} else { //如果沒有COOKIE即是初次訪問
  $vid = 0; //初始化訪問者ID
  do { //給用戶一個(gè)新ID
    $vid++;
    $uid = 'U'.$vid;
  } while (array_key_exists($uid,$nowonline));
  setcookie($cookiename,$uid);
}
$nowonline[$uid] = $nowtime; //更新現(xiàn)在的時(shí)間狀態(tài)
/*
  @ 統(tǒng)計(jì)現(xiàn)在在線人數(shù)
*/
$total_online = count($nowonline);
/*
  @ 寫入數(shù)據(jù)
*/
if($fp = @fopen($filename,'w')) {
  if(flock($fp,LOCK_EX)) {
    rewind($fp);
    foreach($nowonline as $fuid => $ftime) {
      $fline = $fuid.'|'.$ftime."\n";
      @fputs($fp,$fline); 
    }
    flock($fp,LOCK_UN);
    fclose($fp);
  }
}
  echo 'document.write("'.$total_online.'");'; 
?>

通過注釋中的說明可知,如下js語句訪問即可:

script src="online.php">/script>

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP中cookie用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》及《php字符串(string)用法總結(jié)》

希望本文所述對大家PHP程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:
  • php下用cookie統(tǒng)計(jì)用戶訪問網(wǎng)頁次數(shù)的代碼
  • php利用cookie實(shí)現(xiàn)訪問次數(shù)統(tǒng)計(jì)代碼
  • PHP基于cookie與session統(tǒng)計(jì)網(wǎng)站訪問量并輸出顯示的方法
  • php中cookie實(shí)現(xiàn)二級(jí)域名可訪問操作的方法
  • php中記錄用戶訪問過的產(chǎn)品,在cookie記錄產(chǎn)品id,id取得產(chǎn)品信息
  • php使用cookie顯示用戶上次訪問網(wǎng)站日期的方法
  • php使用Cookie控制訪問授權(quán)的方法
  • php使用Session和文件統(tǒng)計(jì)在線人數(shù)
  • php+memcache實(shí)現(xiàn)的網(wǎng)站在線人數(shù)統(tǒng)計(jì)代碼

標(biāo)簽:安康 溫州 金華 呼倫貝爾 萊蕪 紹興 清遠(yuǎn) 綏化

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP基于cookie實(shí)現(xiàn)統(tǒng)計(jì)在線人數(shù)功能示例》,本文關(guān)鍵詞  PHP,基于,cookie,實(shí)現(xiàn),統(tǒng)計(jì),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PHP基于cookie實(shí)現(xiàn)統(tǒng)計(jì)在線人數(shù)功能示例》相關(guān)的同類信息!
  • 本頁收集關(guān)于PHP基于cookie實(shí)現(xiàn)統(tǒng)計(jì)在線人數(shù)功能示例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章