包含php實現統計ip數及在線人數的詞條

本文目錄一覽:

php怎樣統計在線人數

php怎樣統計在線人數

?php

require_once(‘config.php’);

function counter()

{

session_start();

$sql=”select counter from counter”;

$result=@mysql_query($sql);

if(!empty($result))

{

$row=mysql_fetch_array($result);

$counter=++$row[counter];

if(!$_SESSION[‘counter’])

{

$query=”update counter set counter=$counter”;

$result=@mysql_query($query);

if($result)

{

$_SESSION[‘counter’]=true;

}

}

$counter_len=strlen($counter);

for($i=0;$i$counter_len;$i++)

{

$number=substr($counter,$i,1);

if(isset($number))

{

echo “img src=’image/”.$number.”.gif'”;

}

}

}

}

?

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_arr as $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中如何實現在線人數的統計和顯示

要使用資料庫,建立一個表,比如名字是online,至少有以下列:

name_ip 存放登錄用戶名,未登錄的存放IP,char類型

url 存放每個頁面的地址,char類型

last_time 存放刷新頁面的最後時間,int類型

表的主鍵是:name_ip+url

每個頁面一開始就要刷新這個表,使用的SQL是:

$name_ip=’用戶名或者IP’;//你能搞定

$url=$_SERVER[“PHP_SELF”];

$time=time();

$sql=”replace delayed into online (name_ip,url,last_time) values (‘$name_ip’,’$url’,$time)”;

mysql_query($sql);

獲取某頁面在線人數的查詢是語句

$limit=time()-10*60;//10分鐘內訪問的認為在線,10分鐘*60秒/分鐘

$sql=”select count(*) from online where url=’$url’ and last_time=$limit”;

$res=mysql_query($sql);

list($online_count)=mysql_fetch_row($res);

mysql_free_result($res);

echo “本頁面在線人數: $online_count”;

php 統計在線人數 根據IP判斷哪個地方多少人, 也就是說,某C段的多少人。這個樣子,不知道怎麼寫判斷。

$on = array(0=array(‘uid’=222,’ip’=’22.121.11.22’),…);

$ip_part= array(-2323,22323,1231232,1231231231,123123123123,12312332131);//ip段的小大順序排列

$ip_part_count = array();

foreach($on as $k=$v){

$on[$k][‘ip’] = ip2long($v[‘ip’]);

for($i=0;$icount($ip_part);$i++)

if($on[$k][‘ip’] = $ip_part[$i] and $on[$k][‘ip’] $ip_part[$i+1]){

if(isset($ip_part_count[$i])){

$ip_part_count[$i]++;

}

else{

$ip_part_count[$i] = 1;

}

}

}

}

這裡寫代碼容易出錯,不供測試,僅供參考

php如何實現記錄網站在線人數

這個方法是我重網上找的,你可以看看:

主要原理:把每個訪客的session ID 作為文件名,生成一個空白文件在指定的文件夾。如果檢查到這份文件的生成時間已經超過了指定的時間,即刪除。那麼,統計文件的數量可以得到在線人數。

如果的代碼放在一份獨立的文件,網站所有頁面的都引用這份代碼。即訪客每瀏覽一次頁面都會調用一次此代碼。

?php

ob_start();

session_start();

$num=0;

$dirpt = “online”; // 必須先建立一個online文件夾,存在下面要生成的文件

$reftime = 1;

if (is_dir($dirpt) $dir = opendir($dirpt)) {

while (($file = readdir($dir)) !== false) {

if(strcmp($file,”..”)==0 || strcmp($file,”.”)==0){

continue;

}

$D_[date(“Y-m-d H:i:s”,filemtime($dirpt.”/”.$file))]=$file;

$num++;

unset($cum);

}

closedir($dir);

$filename = session_id();

$fp = fopen($dirpt.”/”.$filename,”w”);

fputs($fp,””);

fclose($fp);

$ntime = date(“Y-m-d H:i:s”,mktime(date(“H”),date(“i”)-1,0,date(“m”),date(“d”),date(“Y”)));

$D_[$ntime]=”-“;

krsort($D_);

$onlinenumber=0;

while(1){

$vkey=key($D_);

$onlinenumber++;

if(strcmp($ntime,$vkey)==0){

break;

}else{

array_shift($D_);

}

}

array_shift($D_);

reset($D_);

while(count($D_)0){

$ckey=key($D_);

unlink($dirpt.”/”.$D_[$ckey]);

if(!next($D_)){

break;

}

}

}else{

@chmod(“..”,0777);

@mkdir($dirpt,0777);

}

$online=$onlinenumber-1;

$retime=60*$reftime;

echo “當前在線”.$online.”人,”;

echo $retime;

ob_end_flush();

?

thinkphp中如何獲取用戶的ip地址實現網站訪問人數統計的計數器

thinkphp默認封裝了獲取ip方法:get_client_ip()

統計人數這個我也建議用cnzz,很方便,你想看的數據基本都能滿足。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/239170.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:15
下一篇 2024-12-12 12:15

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • Python在線編輯器的優勢與實現方式

    Python在線編輯器是Python語言愛好者的重要工具之一,它可以讓用戶方便快捷的在線編碼、調試和分享代碼,無需在本地安裝Python環境。本文將從多個方面對Python在線編輯…

    編程 2025-04-28
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若伺服器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • CentOS 7在線安裝MySQL 8

    在本文中,我們將介紹如何在CentOS 7操作系統中在線安裝MySQL 8。我們會從安裝環境的準備開始,到安裝MySQL 8的過程進行詳細的闡述。 一、環境準備 在進行MySQL …

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27
  • PHP與Python的比較

    本文將會對PHP與Python進行比較和對比分析,包括語法特性、優缺點等方面。幫助讀者更好地理解和使用這兩種語言。 一、語法特性 PHP語法特性: <?php // 簡單的P…

    編程 2025-04-27
  • Python菜鳥在線編程用法介紹

    Python菜鳥在線編程是一個允許用戶在線編輯、運行和調試Python代碼的網站。不僅如此,它還有許多強大的功能可以幫助開發人員更高效地學習和使用Python語言。本文將詳細介紹P…

    編程 2025-04-25
  • 奧賽一本通在線評測

    一、什麼是奧賽一本通在線評測 奧賽一本通在線評測旨在為廣大競賽愛好者提供一個方便、快捷的評測平台。該平台收集了大量的競賽題目,涉及數學、物理、計算機等多個領域,供用戶在線提交答案並…

    編程 2025-04-24

發表回復

登錄後才能評論