Cet article présente principalement la fonction de comptage du nombre de personnes en ligne en PHP, et analyse les compétences opérationnelles associées de PHP basées sur le calcul de l'objet de session et le comptage du nombre de personnes en ligne sous forme d'exemples. Les amis dans le besoin peuvent se référer. à cela
Je me souviens d'ASP Pour compter le nombre de personnes en ligne, utilisez simplement l'objet application. Comment concevoir PHP ?
PHP encapsule très bien l'objet session Selon le protocole HTTP, les visiteurs de chaque gamme de sites Web peuvent générer un identifiant unique
echo session_id(); //6ed364143f076d136f404ed93c034201<br />
C'est la clé pour compter le nombre de personnes en ligne. Ce n'est qu'avec ce session_id que nous pouvons distinguer les personnes qui visitent. Parce que tout le monde est différent.
Ensuite, comment stocker la valeur de la variable de session dans la base de données. Ici, nous allons introduire une autre fonction
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) //垃圾回收函数
Remarque<. 🎜>, plusieurs fonctions ci-dessus ont des paramètres transmis, il vous suffit d'indiquer qu'ils sont transmis. Lorsque PHP exécute le code, il lira automatiquement les paramètres en
session
L'étape suivante consiste à compléter les cinq fonctions ci-dessus et une fonction principalesession_set_save_handler( array("session","open"), array("session","close"), array("session","read"), array("session","write"), array("session","destroy"), array("session","gc") );
Chaque fois que vous passez la méthode d'un objet en paramètre, vous devez utiliser ce formulaire : array(object, "method name"))
Suivant C'est l'écriture de chaque fonction//链接数据的open function open($path,$sessname) { $db = mysql_connect("localhost","root","123456","test"); mysql_select_db("test",$db); mysql_query("SET NAMES UTF8"); return true; }
function close(){ $db = mysql_connect("localhost","root","123456","test"); mysql_close($db); return true; }
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; }
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; }
Collection de fonctions communes PHP
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!