zoukankan      html  css  js  c++  java
  • php+memcache实现的网站在线人数统计

    <?php
    $mc = new Memcache ();
     
    // 连接memcache
    $mc->connect ( "127.0.0.1", 11211 );
     
    // 获取 在线用户 IP 和 在线时间数据
    $online_members = $mc->get ( 'online_members' );
     
    // 如果为空,初始化数据
    if (! $online_members) {
     $online_members = array ();
    }
     
    // 获取用户ip
    $ip = $_SERVER ["REMOTE_ADDR"];
     
    // 为访问用户重新设置在线时间
    $online_members [$ip] = time ();
     
    foreach ($online_members as $k => $v) {
     // 如果三分钟后再未访问页面,刚视为过期
     if (time() - $v > 180) {
     unset($online_members[$k]);
     }
    }
     
    // 重新设置在线用户数据
    $mc->set ( 'online_members', $online_members );
     
    // 重新获取在线用户数据
    $online_members = $mc->get ( 'online_members' );
     
    // 输入统计在线人数
    echo count($online_members);
    ?>
     
    // 获取所有浏览次数
    function get_all_visit_number()
    {
     $mc = new Memcache ();
      
     // 使用wordpress自带wpdb类
     global $wpdb;
      
     // 参数表
     $table = "wp_options";
      
     // 连接memcache
     $mc->connect ( "127.0.0.1", 11211 );
      
     // 获取浏览次数
     $visit_number = $mc->get ( 'visit_number' );
      
     // Memcache 中是否存有访问次数
     if (!$visit_number) {
     
     // 不存在时,查询数据库
     $querystr = "SELECT `option_value` FROM " .$table. " WHERE `option_name`='visit_number'";
     $results = $wpdb->get_results($querystr);
      
     // 把数据库中存储的值赋予memcache变量
     $visit_number = intval($results[0]->option_value);
     }
      
     // 设置浏览次数
     $mc->set ( 'visit_number', ++$visit_number);
      
     // 获取浏览次数
     $visit_number = $mc->get ( 'visit_number' );
      
     
     // 每达100次访问量,更新到数据库
     if ($visit_number % 100 == 0) {
     
     // 使用wordpress自带wpdb类
     $data_array = array(
      'option_value' => $visit_number
     );
      
     $where_clause = array(
      'option_name' => 'visit_number'
     );
      
     $wpdb->update($table,$data_array,$where_clause);
     }
      
     // 关闭memcache连接
     $mc->close ();
      
     return $visit_number;
    }
  • 相关阅读:
    PhotoShop使用指南(3)—— 将多张图片添加到图层
    PhotoShop使用指南(2)——下雨动画效果
    PhotoShop使用指南(1)——动态图gif的制作
    SQL使用指南(2)—— 约束的使用
    SQL使用指南(1)—— 数据定义语言(DDL)
    pyspider显形js报错处理
    123123
    mongodb数据库操作,导入导出,增删改查
    selenium+phantomjs动态添加headers信息,动态加载
    使用selenium模拟登陆点击登陆按钮
  • 原文地址:https://www.cnblogs.com/L-H-R-X-hehe/p/3987261.html
Copyright © 2011-2022 走看看