Heim  >  Artikel  >  Backend-Entwicklung  >  Wie zählt phg die Anzahl der Personen, die online sind?

Wie zählt phg die Anzahl der Personen, die online sind?

怪我咯
怪我咯Original
2017-07-04 13:15:191101Durchsuche

In diesem Artikel wird hauptsächlich die Funktion zum Zählen der Anzahl der Online-Personen in PHP vorgestellt und die damit verbundenen Betriebsfähigkeiten von PHP anhand von Beispielen analysiert, auf die sich Freunde in Not beziehen können zu Folgendem

Die Beispiele in diesem Artikel werden erklärt. Entwickelte PHP-Methode, um die Anzahl der Personen online zu zählen. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Ich erinnere mich, dass Sie in ASP das Anwendungsobjekt verwenden können, um die Anzahl der Personen zu zählen, die online sind. Wie entwerfe ich PHP?

PHP kapselt das Sitzungsobjekt sehr gut. Gemäß dem HTTP-Protokoll können Besucher jeder Website-Reihe eine eindeutige Kennung generieren.

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

Dies ist der Schlüssel zum Zählen der Anzahl der Personen online Daher können wir nur mit dieser session_id die Besucher unterscheiden. Weil jeder anders ist.
Als nächstes erfahren Sie, wie der Wert in der Sitzungsvariablen in der Datenbank gespeichert wird.

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

Hinweis , es gibt oben mehrere Funktionen: Falls vorhanden Wenn Sie Parameter übergeben, müssen Sie nur angeben, dass sie übergeben werden. Wenn PHP den Code ausführt, liest es automatisch die Parameter in der

Sitzung

Der nächste Schritt besteht darin, die oben genannten fünf Funktionen und eine Hauptfunktion abzuschließen

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

Die Hauptfunktion wird so vervollständigt, aber warum müssen Sie array("session", "method") verwenden, um diese Methoden aufzurufen? Ich verstehe das wirklich nicht

(Grundsätzlich verstanden :Jedes Mal, wenn Sie die Methode eines Objekts als Parameter übergeben, müssen Sie diese Form verwenden: array(object, "method name"))

Der nächste Schritt besteht darin, jede Funktion zu schreiben

//链接数据的open
function open($path,$sessname) {
  $db = mysql_connect("localhost","root","123456","test");
  mysql_select_db("test",$db);
  mysql_query("SET NAMES UTF8");
  return true;
}

Schließen von Daten kann mit Schließen verknüpft werden

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

Die Tastenfunktion startet gerade und zeigt die Lesefunktion read() an. Hauptsächlich wird in der Funktion read() ein Wert übergeben , und die übergebene ist 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"]:" ";
}

Die zweite ist die Schreibfunktion. Wenn die Daten in der Datenbank vorhanden sind, aktualisieren Sie einfach die Zeit und die neuen Daten werden geschrieben

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;
}

Der nächste Schritt besteht darin, die PHP-Recycling-Mechanismus-Funktion zu reflektieren. Beide Funktionen verfügen über übergebene Parameter.

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, die fünf Funktionen sind abgeschlossen und dann wird die Anzahl der Sitzungsdatensätze aus der Sitzungstabelle ausgelesen. Sie können die Anzahl der Personen, die die Seite besuchen, genau zählen.

Benutzerdatensätze, die 10 Minuten lang nicht bedient wurden, werden gelöscht

Das obige ist der detaillierte Inhalt vonWie zählt phg die Anzahl der Personen, die online sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn