PHP+Memcache实现wordpress访问总数统计(非插件)


Posted in PHP onJuly 04, 2014

以前写过一篇博文,利用 PHP 和 Memcache 实现网站,以下链接查看:https://3water.com/article/51825.htm
今天就把该功能用到 wordpress 中,并实现把访问次数保存到数据库中。

MySQL 语句

首先在参数表中,添加访问次数的默认数据

// 获取所有浏览次数
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 相关文章推荐
使用 eAccelerator加速PHP代码的目的
Mar 16 PHP
PHP下利用header()函数设置浏览器缓存的代码
Sep 01 PHP
php 调试利器debug_print_backtrace()
Jul 23 PHP
PHP中空字符串介绍0、null、empty和false之间的关系
Sep 25 PHP
解析PHP高效率写法(详解原因)
Jun 20 PHP
关于ob_get_contents(),ob_end_clean(),ob_start(),的具体用法详解
Jun 24 PHP
php三维数组去重(示例代码)
Nov 26 PHP
ThinkPHP3.1新特性之字段合法性检测详解
Jun 19 PHP
Python中使用django form表单验证的方法
Jan 16 PHP
如何用PHP做到页面注册审核
Mar 02 PHP
laravel框架添加数据,显示数据,返回成功值的方法
Oct 11 PHP
Thinkphp 在api开发中异常返回依然是html的解决方式
Oct 16 PHP
php+memcache实现的网站在线人数统计代码
Jul 04 #PHP
PHP轻量级数据库操作类Medoo增加、删除、修改、查询例子
Jul 04 #PHP
CodeIgniter安全相关设置汇总
Jul 03 #PHP
php使用pack处理二进制文件的方法
Jul 03 #PHP
PHP源码分析之变量的存储过程分解
Jul 03 #PHP
ThinkPHP让分页保持搜索状态的方法
Jul 02 #PHP
ThinkPHP实现批量删除数据的代码实例
Jul 02 #PHP
You might like
PHP通用检测函数集合
2006/11/25 PHP
详细解读PHP的Yii框架中登陆功能的实现
2015/08/21 PHP
PHP入门教程之自定义函数用法详解(创建,调用,变量,参数,返回值等)
2016/09/11 PHP
Laravel5.5 视图 - 创建视图和数据传递示例
2019/10/21 PHP
把textarea中字符串里含有的回车换行替换成<br>的javascript代码
2007/04/20 Javascript
动态添加js事件实现代码
2009/03/12 Javascript
jQuery 学习第七课 扩展jQuery的功能 插件开发
2010/05/17 Javascript
JavaScript中的apply()方法和call()方法使用介绍
2012/07/25 Javascript
自己封装的javascript事件队列函数版
2014/06/12 Javascript
基于javascript实现listbox左右移动
2016/01/29 Javascript
理解javascript函数式编程中的闭包(closure)
2016/03/08 Javascript
JS递归遍历对象获得Value值方法技巧
2016/06/14 Javascript
js实现四舍五入完全保留两位小数的方法
2016/08/02 Javascript
Vue.js基础指令实例讲解(各种数据绑定、表单渲染大总结)
2017/07/03 Javascript
深入理解ES6 Promise 扩展always方法
2017/09/26 Javascript
Node.js原生api搭建web服务器的方法步骤
2019/02/15 Javascript
vue中如何实现后台管理系统的权限控制的方法步骤
2019/09/05 Javascript
js实现3D照片墙效果
2019/10/28 Javascript
Vue.extend 登录注册模态框的实现
2020/12/29 Vue.js
python计算程序开始到程序结束的运行时间和程序运行的CPU时间
2013/11/28 Python
Python实现分割文件及合并文件的方法
2015/07/10 Python
编写自定义的Django模板加载器的简单示例
2015/07/21 Python
Python编程中的文件操作攻略
2015/10/16 Python
Python提取PDF内容的方法(文本、图像、线条等)
2019/09/25 Python
Python 3.9的到来到底是意味着什么
2020/10/14 Python
CSS3 @font-face属性使用指南
2014/12/12 HTML / CSS
Html5原生拖拽相关事件简介以及基础实现
2020/11/19 HTML / CSS
理肤泉俄罗斯官网:La Roche-Posay俄罗斯
2018/07/24 全球购物
类成员函数的重载、覆盖和隐藏区别
2016/01/27 面试题
2015年幼儿园毕业感言
2014/02/12 职场文书
公司投资建议书
2014/05/16 职场文书
自我工作评价范文
2015/03/06 职场文书
SqlServer 垂直分表(减少程序改动)
2021/04/16 SQL Server
Apache Linkis 中间件架构及快速安装步骤
2022/03/16 Servers
关于JS中的作用域中的问题思考分享
2022/04/06 Javascript
Go结合Gin导出Mysql数据到Excel表格
2022/08/05 Golang