扩展

PHP中Memcache类函数详解

守給你的承諾、 提交于 2019-12-04 05:02:35
Memcache类函数列表如下: Memcache::add – 添加一个值,如果已经存在,则返回false Memcache::addServer – 添加一个可供使用的服务器地址 Memcache::close – 关闭一个Memcache对象 Memcache::connect – 创建一个Memcache对象 memcache_debug – 控制调试功能 Memcache::decrement – 对保存的某个key中的值进行减法操作 Memcache::delete – 删除一个key值 Memcache::flush – 清除所有缓存的数据 Memcache::get – 获取一个key值 Memcache::getExtendedStats – 获取进程池中所有进程的运行系统统计 Memcache::getServerStatus – 获取运行服务器的参数 Memcache::getStats – 返回服务器的一些运行统计信息 Memcache::getVersion – 返回运行的Memcache的版本信息 Memcache::increment – 对保存的某个key中的值进行加法操作 Memcache::pconnect – 创建一个Memcache的持久连接对象 Memcache::replace -对一个已有的key进行覆写操作 Memcache::set

GCC的C语言扩展笔记(二)-- linux gcc的属性解析

旧城冷巷雨未停 提交于 2019-12-04 04:53:55
本来打算接着摘抄《GCC参考手册》关于属性扩展(__attribute__)的说明,不过由于翻译太差,许多地方看得莫名其妙,就到网上找了下,下面是一篇关于属性的文章,讲得不错,转帖于下。 不敢掠美,附上原文地址: http://blog.eastmoney.com/stcu/blog_150699657.html linux gcc的属性解析 GNU C的一大特色(却不被初学者所知)就是__attribute__机制。__attribute__可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。 __attribute__书写特征是:__attribute__前后都有两个下划线,并切后面会紧跟一对原括弧,括弧里面是相应的__attribute__参数。 __attribute__语法格式为: __attribute__ ((attribute-list)) 其位置约束为: 放于声明的尾部“;”之前。 函数属性(Function Attribute) 函数属性可以帮助开发者把一些特性添加到函数声明中,从而可以使编译器在错误检查方面的功能更强大。__attribute__机制也很容易同非GNU应用程序做到兼容之功效。 GNU CC需要使用 –Wall编译器来击活该功能

nodejs的C++扩展中实现异步回调

断了今生、忘了曾经 提交于 2019-12-03 10:21:38
在nodejs的官方网站中有关于C++扩展的详细说明,其中包含了从"hello world"到对象封装的一系列示例。其中的“ callback ”节是关于回调函数的,美中不足的是,这个回调是阻塞的回调。 官方示例的回调函数用JS代码来模拟的话,大致是这个样子: function syncCallback(callback) { // 业务代码 // 业务代码 callback(); } 使用C++扩展的一个最大好处就是处理一些CPU密集的业务,因此这部分代码一定是比较耗时的,否则用C++去实现完全没有意义。业务代码中的阻塞操作,例如传统文件读写、密集计算等都会导致nodejs原始线程的阻塞,导致后来的请求无法得到及时响应,严重影响node的并发性能。 有服务器程序开发的朋友肯定已经想到用多线程的方法解决这个问题。是的,我要分享的就是在C++扩展中用多线程的方法处理回调,从而达到解决复杂的业务同时保证node线程的无阻塞特性。 node C++扩展中,可以使用libuv提供的线程方法,非常方便的进行线程调度。 下面是具体代码,详细解释见注释: #include <v8.h> #include <node.h> #include <stdlib.h> #include <errno.h> #include <stdio.h> #include <string.h> using

ubuntu通过apt-get方式搭建lnmp环境以及php扩展安装

*爱你&永不变心* 提交于 2019-12-03 10:20:41
一直是在用的lnmp的集成安装包搭建lnmp环境,因为工作需要需要安装ldap扩展,在网上怎么都找不到源码安装包,只能卸载掉原来的lnmp环境,用ubuntu的php5-ldap扩展, 在安装中遇到一些问题,网上的文章坑爹的比较多,写篇文章记录下来。 1.安装mysql sudo apt-get install mysql-server mysql-clien 安装过程中要输入root用户的密码。 我在安装中出错,是原来的mysql-cilent mysql-workbench 未完全卸载,将mysql组件完全卸载的方法: 删除mysql前 先删除一下 /var/lib/mysql 还有 /etc/mysql sudo rm /var/lib/mysql/ -R sudo rm /etc/mysql/ -R sudo apt-get autoremove mysql* --purge sudo apt-get remove apparmor 全部删除之后再执行 apt-get install mysql-server mysql -client 2.安装nginx sudo apt-get install nginx 3.安装成功后。我们重启下nginx服务 sudo service nginx restart 启动之后我们就可以访问以下我们的地址了

zephir-(3)你的第一个PHP拓展

荒凉一梦 提交于 2019-12-03 07:57:59
#zephir-你的第一个PHP拓展# ##前言## 先在这里感谢各位zephir开源技术提供者 在之前的介绍中大家不仅了解了zephir具体是一个什么样的语言,也get到了它的安装方式,成功安装到自己的系统上了.今天让我们来一同编写之前我们演示过的一些拓展让我们来一同动起手来尝试一下. 注:笔者水平有限,说的不正确的地方希望大家多多指正,一同交流技术 附上: 喵了个咪的博客: w-blog.cn zephir官网地址: http://zephir-lang.com/ github地址: https://github.com/phalcon/zephir ##1. 第一个拓展## Zephir和这本书(官方文档和此译文讲解)的目的是为PHP开发人员想要用较低的复杂性创建c扩展。 假设你有一个或多个其他编程语言的经验,我们将指出zephit和PHP中,C、Javascript和其他语言有很多相似的特性,以及新的或不同的许多特性。 如果你已经成功安装Zephir,你必须能够在您的控制台执行以下命令: $ zephir help 如果一切都好,你应该在你的屏幕上看到以下帮助信息. ###1.1 扩展框架### 我们要做的第一件事就是生成一个扩展框架,这将提供给我们扩展的基本 我们需要开始工作的结构。 在我们的例子中,我们将创建一个扩展名为“utils”: $ zephir init

巧用 python 脚本控制你的C程序(首发在我的博客园)

我怕爱的太早我们不能终老 提交于 2019-12-02 17:44:09
http://www.cnblogs.com/haippy/archive/2011/09/17/2179902.html python是一门艺术语言,除了开发桌面程序,还能够开发网络应用,数据库应用,还可以代替shell编写一些的实用脚本,本文主要讲述了如何利用 python 程序控制你的 C 程序的行为。 作为例子,本文将用 python 和 C 语言来编写示例代码,同时也会顺便介绍一下 利用 C 语言扩展 python的方法,最后会给出完整的 C 编写 python 模块的源码。 首先考虑以下应用:假设你需要在项目中实现字符串排序比较的功能,但是事先并不确定应该如何排序(再次假设一下,如果某字符串中如果出现了 “aaa”, "bbb" 这样的子串,就将该字符串排在靠后的位置),此时如果用 C 语言实现了预定义的排序功能,那么万一某天需要改变字符串排序行为,就必须重新编写 C 程序的实现,并且再次编译项目,这样会浪费大量的精力,相反,如果将字符串排序的功能用 python 代码控制,即如何排序由python程序定义,这样将大大提高程序的灵活性。 以下就是示例程序,程序由 python 脚本和 C 编译的 python 模块组成,python 实现字符串比较功能,为了简化期间,本文只是先两个字符串大小的比较(用于说明 python控制程序行为已经足够),程序采用回调函数实现

PHP安装pthreads多线程扩展教程[windows篇]

感情迁移 提交于 2019-12-01 18:38:27
一、判断PHP是ts还是nts版 通过phpinfo(); 查看其中的 Thread Safety 项,这个项目就是查看是否是线程安全,如果是:enabled,一般来说应该是ts版,否则是nts版。 二、根据PHP ts\nts版选择对应pthreads的版本 windows版本的下载地址 http://windows.php.net/downloads/pecl/releases/pthreads/0.1.0/ 本人php版本是5.4.17的所以下载php_pthreads-0.1.0-5.4-ts-vc9-x86.zip文件包,其中0.1.0表示为当前pthreads版本号,5.4为php版本号,ts就是之前判断php对应的ts、nts版,vs9代表是Visual Studio 2008 compiler编译器编译的,最后的x86代表的是32位的版本。 三、安装pthreads扩展 将下载好的php_pthreads-0.1.0-5.4-ts-vc9-x86.zip文件包解压得到 pthreadVC2.dll和php_pthreads.dll文件,把vc2文件放到php.exe同级目录,把php_pthreads.dll放到扩展目录下。 1、修改php.ini文件 添加extension=php_pthreads.dll 2、修改Apache配置文件httpd.conf

Yii 网页播放器扩展 yii-web-player

自古美人都是妖i 提交于 2019-12-01 18:02:03
今天写了一个Yii的扩展,Yii Web Player 可以用于播放百度影音,优酷视频,搜狐视频等(前提是知道影片地址)。 我把它放到了 开源中国的代码托管 上了, 项目地址: http://git.oschina.net/dizhang/yii-web-player , 欢迎大家使用并提提意见 ^!^ 使用方法 下载源码 yii-web-player , 解压后放到 extensions 文件夹下。 在 view 中使用如下代码: 注意: 百度影音视频不能使用通用播放器( VideoPlayer ), 应使用专用的 BaiduPlayer <?php // 播放百度影音视频 $this->widget('ext.yii-web-player.BaiduPlayer', array( 'url'=>'bdhd://2483702575|CC27CF6C35487D693F51DFEF13C8DB9D|惊天魔道团BD1280超清中英双字无剪辑版[www.quanji.com].mkv' )); // 播放优酷视频 $this->widget('ext.yii-web-player.VideoPlayer', array( 'url'=>'http://player.youku.com/player.php/Type/Folder/Fid/21061779/Ob/1/sid

Windows下安装redis和在php中使用phpredis扩展

蹲街弑〆低调 提交于 2019-11-30 14:40:52
1、redis简介 redis是一个key-value存储系统。和Memcached类似,它支持存 储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hashs(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都 是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。 Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。 2、windows下安装redis 下载地址: https://github.com/dmajkic/redis/downloads ; http://pan.baidu.com/s/1gdl9BZt 。下载到的Redis支持32bit和64bit。根据自己实际情况选择,我选择64bit

zg手册 之 scrapy 开发(6)-- extensions(扩展)开发

牧云@^-^@ 提交于 2019-11-30 04:18:13
scrapy 扩展 扩展提供了一种机制,添加自定义的功能到 scrapy 例如,爬虫状态统计扩展,统计爬虫的运行信息 加载和运行 在 scrapy 启动时创建扩展的单一实例对象,添加扩展的配置到 settings.py 文件 # 下面的字典定义了加载的扩展,字符串是扩展的路径名,数字是加载插件的顺序 EXTENSIONS = { 'scrapy.contrib.corestats.CoreStats': 500, 'scrapy.webservice.WebService': 500, 'scrapy.telnet.TelnetConsole': 500,} # 启用插件 MYEXT_ENABLED = True 一个官方的插件例子 from_crawler 是创建插件(下载插件,扩展插件等)实例时,被框架调用的方法。可以检查配置,传递配置信息(可以从 crawler.settings 对象获取 settings.py 中定义的配置信息) 调用 crawler.signals.connect 注册事件回调函数,在事件发生时被框架回调 from scrapy import signals from scrapy.exceptions import NotConfigured class SpiderOpenCloseLogging(object): def __init__(self