온라인 인원수 계산을 구현하는 PHP 방법
PHP는 HTTP 프로토콜에 따라 각 웹사이트 방문자가 고유 식별자를 생성할 수 있도록 세션 개체를 매우 잘 캡슐화합니다.
echo session_id(); //6ed364143f076d136f404ed93c034201<br />
이것은 온라인 사용자 수를 계산하는 열쇠입니다. 누가 방문했는지 구별할 수 있습니다. 모두가 다르기 때문입니다.
다음으로 세션 변수의 값을 데이터베이스에 저장하는 방법입니다. 여기서는 또 다른 함수를 소개하겠습니다
bool session_set_save_handler ( callable $open , callable $close , callable $read , callable $write , callable$destroy , callable $gc ) //callable 可随时支取的,请求即付的,随时可偿还的 // open(string $savePath, string $sessionName) 打开连接 //close() 关闭连接 //read(string $sessionId) 对出数据 //write(string $sessionId, string $data) //写入数据 //destroy($sessionId) //删除数据 //gc($lifetime) //垃圾回收函数
위 함수 중 몇몇에는 매개변수가 전달되어 있습니다. 전달되었음을 표시하기만 하면 됩니다. 오른쪽. PHP가 코드를 실행하면 자동으로
세션
의 매개변수를 읽습니다. 다음 단계는 위의 5개 함수와 메인 함수
session_set_save_handler( array("session","open"), array("session","close"), array("session","read"), array("session","write"), array("session","destroy"), array("session","gc") );
이렇게 해서 메인 함수가 완성됩니다.
Note : 객체의 메소드를 매개변수로 전달할 때마다 다음 형식을 사용해야 합니다: array(object, "method name")
다음 단계는 각 함수를 작성하는 것입니다
//链接数据的open function open($path,$sessname) { $db = mysql_connect("localhost","root","123456","test"); mysql_select_db("test",$db); mysql_query("SET NAMES UTF8"); return true; }
close에 연결할 수 있는 데이터 닫기
function close(){ $db = mysql_connect("localhost","root","123456","test"); mysql_close($db); return true; }
핵심 함수를 시작해야 합니다. 이제 읽기 함수인 read()가 표시됩니다. 주로 read() 함수에 전달된 값이 있습니다. 전달된 값은 session_id입니다
function read($sid){ $sql = "select data from session where sid='{$sid}' and card='".self::$card."'"; $query = mysql_query($sql) or die(mysql_error()); $row = mysql_fetch_array($query); $row>0?$row["data"]:" "; }
두 번째는 쓰기 함수입니다. 업데이트 시간만 지나면 데이터베이스에 존재합니다. 그러면 새로운 데이터가 기록됩니다
function write($sid,$data) { $sql = "select sid from session where sid='{$sid}' and card='".self::$card."'"; $query = mysql_query($sql) or die(mysql_error()); $mtime = time(); $num = mysql_num_rows($query); if($num){ $sql = "UPDATE session SET data='{$data}', mtime ='{$mtime}'"; }else{ $sql = "INSERT INTO session (sid,data,mtime,ip,card) VALUES('{$sid}','{$data}','".time()."','{$_SERVER['REMOTE_ADDR']}','".self::$card."')"; } mysql_query($sql); return true; }
다음 단계는 PHP 재활용 메커니즘을 구현하는 함수입니다. 두 함수 모두 매개변수가 전달됩니다.
function destroy($sid){ $sql = "DELETE FROM session WHERE sid='{$sid}'"; mysql_query($sql) or die(mysql_error()); return true; } function gc($max_time){ $max_time = 600; $sql = "DELETE FROM session WHERE `mtime`<'".(time()-$max_time)."'"; mysql_query($sql) or die(mysql_error()); return true; }
좋아요, 다섯 가지 기능이 완료되고 세션 테이블에서 세션 레코드 수를 읽어옵니다. 페이지를 방문하는 사람의 수를 정확하게 계산할 수 있습니다.
10분간 조작이 없는 사용자 기록은 삭제됩니다.
PHP를 통해 온라인 인원 수를 세는 정확한 코드:
<?php $filename='online.txt';//数据文件 $cookiename='VGOTCN_OnLineCount';//cookie名称 $onlinetime=600;//在线有效时间,单位:秒 (即600等于10分钟) $online=file($filename); //PHP file() 函数把整个文件读入一个数组中。与 file_get_contents() 类似,不同的是 file() 将文件作为一个数组返回。数组中的每个单元都是文件中相应的一行,包括换行符在内。如果失败,则返回 false $nowtime=$_SERVER['REQUEST_TIME']; $nowonline=array(); //得到仍然有效的数据 foreach($online as $line){ $row=explode('|',$line); $sesstime=trim($row[1]); if(($nowtime - $sesstime)<=$onlinetime){//如果仍在有效时间内,则数据继续保存,否则被放弃不再统计 $nowonline[$row[0]]=$sesstime;//获取在线列表到数组,会话ID为键名,最后通信时间为键值 } } /* @创建访问者通信状态 使用cookie通信 COOKIE 将在关闭浏览器时失效,但如果不关闭浏览器,此 COOKIE 将一直有效,直到程序设置的在线时间超时 */ if(isset($_COOKIE[$cookiename])){//如果有COOKIE即并非初次访问则不添加人数并更新通信时间 $uid=$_COOKIE[$cookiename]; }else{//如果没有COOKIE即是初次访问 $vid=0;//初始化访问者ID do{//给用户一个新ID $vid++; $uid='U'.$vid; }while(array_key_exists($uid,$nowonline)); setcookie($cookiename,$uid); } $nowonline[$uid]=$nowtime;//更新现在的时间状态 //统计现在在线人数 $total_online=count($nowonline); //写入数据 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.'");';
관련 권장 사항:
PHP 비디오 튜토리얼: https://www.php.cn/course/list/29/type/2.html
위 내용은 온라인 인원수 계산을 구현하는 PHP 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제









이번 장에서는 CakePHP의 환경 변수, 일반 구성, 데이터베이스 구성, 이메일 구성에 대해 알아봅니다.

PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

CakePHP에서 데이터베이스 작업은 매우 쉽습니다. 이번 장에서는 CRUD(생성, 읽기, 업데이트, 삭제) 작업을 이해하겠습니다.

CakePHP는 PHP용 오픈 소스 프레임워크입니다. 이는 애플리케이션을 훨씬 쉽게 개발, 배포 및 유지 관리할 수 있도록 하기 위한 것입니다. CakePHP는 강력하고 이해하기 쉬운 MVC와 유사한 아키텍처를 기반으로 합니다. 모델, 뷰 및 컨트롤러 gu
