ホームページ  >  記事  >  バックエンド開発  >  phg はオンラインの人数をどのようにカウントしますか?

phg はオンラインの人数をどのようにカウントしますか?

怪我咯
怪我咯オリジナル
2017-07-04 13:15:191100ブラウズ

この記事では、主に PHP のオンライン人数をカウントする機能を紹介し、セッション オブジェクトの計算に基づいて PHP の関連操作スキルを分析し、例の形でオンライン人数をカウントします。必要な友人は参考にしてください。

この記事の例では、PHP メソッドでオンラインの人数をカウントする実装について説明します。参考までに皆さんと共有してください。詳細は次のとおりです:

ASP では、アプリケーション オブジェクトを使用してオンラインの人数をカウントできることを思い出しました。 PHPをどう設計するか?

PHP はセッション オブジェクトを非常にうまくカプセル化します。HTTP プロトコルに従って、Web サイトの各範囲への訪問者は一意の識別子を生成できます

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

これが、オンラインの人数をカウントするための鍵となります。この session_id によってのみ区別できます。人々を訪ねてください。みんな違うから。
次に、セッション変数の値をデータベースに保存する方法を説明します。ここでは別の関数を紹介します

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 つの関数と main 関数を完成させます。しかし、なぜ array("session", "method" を使用するのでしょうか)。 ) これらのメソッドを呼び出すには、本当に理解できません

(基本的には理解しています:オブジェクトのすべてのメソッドはパラメータとして渡され、次の形式を使用する必要があります: array(object, "メソッド名 "))

次のステップは、各関数を書くことです

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

データを閉じるとリンクできます

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

キー関数が開始され、読み取り関数read()を表示します。主に、read()関数は値Enterで渡されます。渡されるのは session_id です

function close(){
$db = mysql_connect("localhost","root","123456","test");
mysql_close($db);
return true;
}
2 番目の関数は、データベースにデータが存在する場合、時刻を更新するだけで新しいデータが書き込まれます

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"]:" ";
}

次のステップは、PHP のリサイクル メカニズムを具体化する関数です。 ,どちらの関数にもパラメータが渡されます。

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

以上で 5 つの関数が完了し、セッション テーブルからセッション レコードの数が読み出されます。ページにアクセスした人の数を正確にカウントできます。

10分間操作がなかったユーザー記録は消去されます

以上がphg はオンラインの人数をどのようにカウントしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。