Home  >  Article  >  Backend Development  >  PHP method to implement the function of counting online people

PHP method to implement the function of counting online people

墨辰丷
墨辰丷Original
2018-05-31 16:52:331515browse

This article mainly introduces the function of counting the number of online people in PHP, and analyzes the related operation skills of PHP based on session object calculation and counting the number of online people in the form of examples. Friends in need can refer to it

I remember ASP To count the number of people online, just use the application object. How to design PHP?

PHP encapsulates the session object very well. According to the HTTP protocol, visitors to each range of websites can generate a unique identifier

echo session_id();
//6ed364143f076d136f404ed93c034201<br />

This is the key to counting the number of people online. Only with this session_id can we distinguish the people who visit. Because everyone is different.
Next, how to store the value in the session variable into the database, here is another function that will be introduced

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) //垃圾回收函数

Note , several functions above have parameters passed in, you just need to indicate that they are passed in. When PHP executes the code, it will automatically read the parameters in

session

The next step is to complete the above five functions and a main function

session_set_save_handler(
   array("session","open"),
   array("session","close"),
   array("session","read"),
   array("session","write"),
   array("session","destroy"),
   array("session","gc")
);

The main function is completed in this way, but why array("session","method") is used to call these methods, I really don't understand

(Basically understood:Anytime you pass an object's method as a parameter, you need to use this form: array(object, "method name"))

The next step is each Writing a function

//链接数据的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 data can be linked close

function close(){
$db = mysql_connect("localhost","root","123456","test");
mysql_close($db);
return true;
}

Key function It's time to start. Display the reading function read(). Mainly, the read() function has a value passed in. What is passed in is session_id

function read($sid){
  $sql = "select data from session where sid=&#39;{$sid}&#39; and card=&#39;".self::$card."&#39;";
  $query = mysql_query($sql) or die(mysql_error());
  $row = mysql_fetch_array($query);
  $row>0?$row["data"]:" ";
}

The second one is the write function. If the data exists in the database, just update the time. The new data is written

function write($sid,$data)
{
   $sql = "select sid from session where sid=&#39;{$sid}&#39; and card=&#39;".self::$card."&#39;";
   $query = mysql_query($sql) or die(mysql_error());
   $mtime = time();
   $num = mysql_num_rows($query);
   if($num){
    $sql = "UPDATE session SET data=&#39;{$data}&#39;, mtime =&#39;{$mtime}&#39;";
   }else{
    $sql = "INSERT INTO session (sid,data,mtime,ip,card) VALUES(&#39;{$sid}&#39;,&#39;{$data}&#39;,&#39;".time()."&#39;,&#39;{$_SERVER[&#39;REMOTE_ADDR&#39;]}&#39;,&#39;".self::$card."&#39;)";
   }
   mysql_query($sql);
   return true;
}

The next step is to reflect PHP recycling Mechanism function, both functions have parameters passed in.

function destroy($sid){
  $sql = "DELETE FROM session WHERE sid=&#39;{$sid}&#39;";
  mysql_query($sql) or die(mysql_error());
  return true;
}
function gc($max_time){
  $max_time = 600;
  $sql = "DELETE FROM session WHERE `mtime`<&#39;".(time()-$max_time)."&#39;";
  mysql_query($sql) or die(mysql_error());
  return true;
}

Okay, the five functions are completed, and then the number of session records is read out from the session table. You can accurately count the number of people visiting the page.

User records that have not been operated for 10 minutes will be cleared

Summary: The above is the entire content of this article, I hope it will be helpful to everyone's learning.

Related recommendations:

PHP Common Function Collection

PHP’s Standard Library

php The role of yield

The above is the detailed content of PHP method to implement the function of counting online people. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn