微信分享类

这个是在ci项目中,用到的微信分享的一个类,储存用的redis /** * wechart service * 微信service * * @author guomumin<aaron8573@gmail.com> * @date 2016-03-21 */ class Wechart { /** * 微信存储到redis中的access_token key * @var string */ const ACCESS_TOKEN_KEY = ‘wechart_access_token’; /** * 微信存储到redis中的jsapi_ticket key * @var string */ const JSAPI_TICKET_KEY = ‘wechart_jsapi_ticket’; /** * 微信标识 * @var string */ private $_app_id = NULL; /** * 微信秘钥 * @var string */ private $_app_secret = NULL; /** * 微信授权秘钥 * @var string */ privat

查看更多

Linux下PHP安装kafka扩展

先下载librdkafka: wget https://github.com/edenhill/librdkafka/archive/master.zip mv master.zip librdkafka-master.zip unzip librdkafka-master.zip cd librdkafka-master ./configure 在这期间,如果没有安装 gcc-c++ 就会报错: c++: command not found 这时候安装一下 gcc-c++ 就可以。如:centos 下 yum install gcc-c++ make && make install 成功后如下:    

查看更多

分布式消息系统:Kafka

Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一个分布式的,可划分的,冗余备份的持久性的日志服务。它主要用于处理活跃的流式数据。 在大数据系统中,常常会碰到一个问题,整个大数据是由各个子系统组成,数据需要在各个子系统中高性能,低延迟的不停流转。传统的企业消息系统并不是非常适合大规模的数据处理。为了已在同时搞定在线应用(消息)和离线应用(数据文件,日志)Kafka就出现了。Kafka可以起到两个作用: 降低系统组网复杂度。 降低编程复杂度,各个子系统不在是相互协商接口,各个子系统类似插口插在插座上,Kafka承担高速数据总线的作用。 Kafka主要特点: 同时为发布和订阅提供高吞吐量。据了解,Kafka每秒可以生产约25万消息(50 MB),每秒处理55万消息(110 MB)。 可进行持久化操作。将消息持久化到磁盘,因此可用于批量消费,例如ETL,以及实时应用程序。通过将数据持久化到硬盘以及replication防止数据丢失。 分布式系统,易于向外扩展。所有的producer、broker和consumer都会有多个

查看更多

微信登录类

<?php /** * 微信网页登录类 * @author guomumin <aaron8573@gmail.com> * @version 1.0 * @date 2014-12-19 */ class Voauth{ /** * @var 授权获取code url */ private $oauth_url = ‘https://open.weixin.qq.com/connect/qrconnect’; /** * @var 授权获取access_token url */ private $access_url = ‘https://api.weixin.qq.com/sns/oauth2/access_token’; /** * @var 获取用户信息 */ private $user_info_url = ‘https://api.weixin.qq.com/sns/userinfo’; /** * @var 微信appid */ private $appid = ”; /** * @var 微信appsecret */ private $appsecr

查看更多

高效缓存Memcached集成使用说明

Memcached 介绍与分析 Memcached是一种集中式Cache,支持分布式横向扩展。总结几个它的特点来理解一下它的优点和限制。 Memory:内存存储,不言而喻,速度快,对于内存的要求高,不指出的话所缓存的内容非持久化。对于CPU要求很低,所以常常采用将Memcached服务端和一些CPU高消耗Memory低消耗应用部属在一起。(作为我们AEP正好有这样的环境,我们的接口服务器有多台,接口服务器对于CPU要求很高(由于WS-Security),但是对于Memory要求很低,因此可以用作Memcached的服务端部属机器) 集中式Cache:避开了分布式Cache的传播问题,但是需要非单点保证其可靠性,这个就是后面集成中所作的cluster的工作,可以将多个Memcached作为一个虚拟的cluster,同时对于cluster的读写和普通的memcached的读写性能没有差别。 分布式扩展:Memcached的很突出一个优点,就是采用了可分布式扩展的模式。可以将部属在一台机器上的多个Memcached服务端或者部署在多个机器上的Memcached服务端组成一个虚拟的服务端,对于

查看更多

过滤XSS(跨站脚本攻击)的函数和防止svn版本库被浏览

php过滤xss函数 别处看到的php去除xss的函数,自己备份下,以备不时之需。 <?php /** * @过滤XSS(跨站脚本攻击)的函数 * @par $val 字符串参数,可能包含恶意的脚本代码如 * <script language=”javascript”>alert(“hello world”);</script> * @return 处理后的字符串 * @Recoded By Androidyue **/ function RemoveXSS($val) { // remove all non-printable characters. CR(0a) and LF(0b) // and TAB(9) are allowed // this prevents some character re-spacing such as <java\0script> // note that you have to handle splits with \n, \r, // and \t later since they *are* allo

查看更多

几种常见的NoSQL数据库关键特性列表

NoSQL根据不同的数据模型,大致可以分为4类,分别是键值对存储(Key-Value Stores),列族存储(Column Families),文档数据库(Document Databases)以及图形数据库(Graph Databases)。四者从容量来讲,依次下降,而从复杂度来说则相反。 下面我根据最近看的一些资料,列出了目前常见的NoSQL数据库系统的一些主要特性,不一定都正确。另外,后面列了一些参考资料,偏向于PostgreSQL,个人觉得还不错。 Google BigTable 由Google开发 闭源产品 通过SSTable实现持久化 通过Chubby实现一致性 key-value存储 HBase Apache基金项目,开发语言为Java Apache License 2.0 许可 Google BigTable的开源版本 为Hadoop的后端数据库 通过HTTP REST,使用JSON协议通信 着重于CP 通过memtable/SStable实现持久化 通过ZooKeeper实现一致性 支持多主节点(multi-master) Hypertable 由Inkomi公司前

查看更多

PHP的生命周期

一个PHP实例,无论是从init脚本中调用的,还是从命令行启动的,都会向我们上一节说的那样, 依次进行Module init、Request init、Request Shutdown、Module shutdown四个过程, 当然之间还会执行脚本自己的逻辑。 那么两种init和两种shutdown各会执行多少次、各自的执行频率有多少呢? 这取决与PHP是用什么sapi与宿主通信的。最常见的四种方式如下所列: ·直接以CLI/CGI模式调用 ·多进程模块 ·多线程模 ·Embedded(嵌入式,在自己的C程序中调用Zend Engine) 1、CLI/CGI CLI和CGI的SAPI是相当特殊的,因为这时PHP的生命周期完全在一个单独的请求中完成。虽然简单,不过我们以前提过的两种init和两种shutdown仍然都会被执行。图1.1展示了PHP在这种模式下是怎么工作的。 2、多进程模式 [ps:书是2006年出版的,所以你应该理解作者说多进程是主流] PHP最常见的工作方式便是编译成为Apache2 的Pre-fork MPM或者Apache1 的APXS 模式,其它web服务器也大多

查看更多

php闭包

php闭包和js闭包写法有点不同: $x = ‘b’; php闭包的写法是 $a = function() use($x){};   其中,“}”后边必须加“;”。(PHP闭包中use()中的参数,只有在闭包前定义才生效) js闭包是 var a = function(){} 就可以了。

查看更多

通过反射机制,返回PHP所有方法

获取php类的方法有get_class_methods(),但这个只能获取public类型的。 获取private类型的需要用到php中的反射类ReflectionClass(),例: function get_all_class_methods($class){ $r = new ReflectionClass($class); foreach($r->getMethods() as $k=>$v){ $methods[$k][‘name’] = $v->name; $methods[$k][‘class’] = $v->class; $methods[$k][‘type’] = ‘public’; if($v->isPrivate()){ $methods[$k][‘type’] = ‘private’; } if($v->isProtected()){ $methods[$k][‘type&

查看更多