码迷,mamicode.com
首页 > Web开发 > 详细

php+memcache实现的网站在线人数统计

时间:2014-09-23 02:40:03      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   os   使用   ar   for   数据   

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

php+memcache实现的网站在线人数统计

标签:style   blog   color   io   os   使用   ar   for   数据   

原文地址:http://www.cnblogs.com/L-H-R-X-hehe/p/3987261.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!