原則: さまざまな IP に基づいて、現在オンラインになっている人の数を数えます。
実装方法:データベースまたはテキストを使用できます。
ここではテキスト実装を使用しました。
/**
*@日付2010.04.07
*@ 著者 チャイナスター bkJia.com
*@ブログ http://hi.baidu.com/woaidelphi/blog
*/
$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 を $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);
群れ($fp,LOCK_UN);
fclose($fp);
echo "現在".count($temp)."オンラインの人がいます";
?>