本文目錄一覽:
- 1、PHP中如何實現在線人數的統計和顯示
- 2、求一個小功能的PHP代碼?
- 3、怎麼用php計算當前在線人數
- 4、如何利用PHP會話顯示出當前在線的用戶
- 5、php在線人數問題
- 6、PHP如何統計在線人數
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代碼?
define(‘需要跳轉時人數的宏’,10);
define(‘在線時間長’.5*60);//單位為秒
function 計算在線人數()
{
$inlinelist=在線人員列表;//結構為『人』=》人名或者對象,』上線時間『=》時間
$num=0;
$nowtime = time();
foreach($inlinelist as $oneuser)
{
if(($nowtime-$oneuser[‘上線時間’])在線時間長) $num++;
}
return $num;
}
$onlineNum=計算在線人數();//資料庫或者文件中記錄的在線人數,讀取這個值
if(需要跳轉時人數的宏=$onlineNum)
{
header(“Location: “);
return;
}
echo ‘!–繼續顯示index.php中的內容–‘;
echo ‘當前在線’.$onlineNum.’人’;
怎麼用php計算當前在線人數
計算當前在線人數–用文本實現
?php
//首先你要有讀寫文件的許可權
//本程序可以直接運行,第一次報錯,以後就可以
$online_log = “count.dat”; //保存人數的文件,
$timeout = 30;//30秒內沒動作者,認為掉線
$entries = file($online_log);
$temp = array();
for ($i=0;$icount($entries);$i++) {
$entry = explode(“,”,trim($entries[$i]));
if (($entry[0] != getenv(‘REMOTE_ADDR’)) ($entry[1] time())) {
array_push($temp,$entry[0].”,”.$entry[1].”\n”); //取出其他瀏覽者的信息,並去掉超時者,保存進$temp
}
}
array_push($temp,getenv(‘REMOTE_ADDR’).”,”.(time() + ($timeout)).”\n”); //更新瀏覽者的時間
$users_online = count($temp); //計算在線人數
$entries = implode(“”,$temp);
//寫入文件
$fp = fopen($online_log,”w”);
flock($fp,LOCK_EX); //flock() 不能在NFS以及其他的一些網路文件系統中正常工作
fputs($fp,$entries);
flock($fp,LOCK_UN);
fclose($fp);
echo “當前有”.$users_online.”人在線”;
?
如何利用PHP會話顯示出當前在線的用戶
我的建議是用資料庫保存記錄,俱體做法如下:
1、新建一個用戶在線表,也可以直接用戶的數據表;
2、每次用戶訪問頁面都會記錄,訪問位置,最後訪問時間;
3、然後比如您要顯示最後20分鐘在線的人數就直查詢:
$dat = time()-60*20;
$sql = “select ID,用戶名,最後訪問時間 from 用戶 where 最後訪問時間$dat”
注:
一般在線是指一段時間內的活動人數,這個時間你可以自己定。例子中是20分鐘,你也可以設置成5分鐘、一小時、甚至一天十天等都可以;
php在線人數問題
將首次刷新的數據存在cookie中,當cookie存在時取cookie不存在則賦值給cookie
具體代碼
if(empty($_COOKIE[‘randNum’])){
$num = rand(100,999);
setcookie(‘randNum’,$num,time()+60*30);
}
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 ) . “人在線”;
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/185968.html