自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 PHP中的hash碰撞的攻击实例

关于哈希碰撞和PHP中的哈希算法,去大神那看吧http://www.laruence.com/2011/12/30/2435.html网上还有很多讲解,这里就不介绍了。介绍个简单的碰撞实例步骤一:生成一个文件,里面就是我们要使用的参数,也就是一堆要碰撞的hashkey  代码(data.php):     $arr=array();   $t=pow(2,16)

2013-01-24 15:02:00 564

原创 服务器维护手记-crontab引起大量sendmail进程打死内存问题

一大早起来,发现个人网站又报警了,前两天刚加了2G内存,我了个去。。。。上机器查日志 /var/log/messageAug 29 07:31:06 AM9YCYMHJM kernel: [ 7539]     0  7539    43237      385   0       0             0 curlAug 29 07:31:06 AM9YCYMHJM k

2015-08-29 10:09:57 3168

原创 memcache扩展0.2版本和0.4版本差异(二)

看看get_version的代码PHP_FUNCTION(memcache_get_version){    mmc_t *mmc;    int inx;    char *version;    zval *mmc_object = getThis();        if (mmc_object == NULL) {        if (zend_get

2013-01-16 20:20:13 387

原创 memcache扩展0.2版本和0.4版本差异(一)

从方法列表里,可以发现,增加了两个对外开放的方法:pconnect和close还是挨个看看每个方法做了哪些改进:实际上connect和pconnect走的是同一个方法php_mmc_connect,参数不同,从参数persistent可以看出pconnect是建立持久化连接在php_mmc_connect中,允许的参数个数改变了,0.2版本,主机和端口是必选参数,在0.4版本里,端

2013-01-16 13:20:09 421

原创 memcache扩展(0.2版本)源代码讲解(memcache_increment)

increment和decrement走的同一个方法 php_mmc_incr_decrPHP_FUNCTION(memcache_increment){    php_mmc_incr_decr(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1);}PHP_FUNCTION(memcache_decrement){    php_mmc_in

2013-01-14 20:43:14 395

原创 memcache扩展(0.2版本)源代码讲解(memcache_delete)

从MC中删除数据的代码如下:PHP_FUNCTION(memcache_delete){    zval *id, **key, **time;   注:当前MC对象在内存中的地址,要删除的key,及时间    mmc_t *mmc; 注:连接对象    int inx, result, real_time; 注:连接id    int ac = ZEND_NU

2013-01-14 18:29:59 423

原创 memcache扩展(0.2版本)源代码讲解(memcache_get)

根据key从MC中取数据,核心代码如下:PHP_FUNCTION(memcache_get){    zval *id, **key;   注:id 保存当前对象在内存中的地址,key保存键名    mmc_t *mmc; 注:连接对象    int inx, flags = 0, data_len = 0;    char *data = NULL;

2013-01-14 16:00:13 875

原创 memcache扩展(0.2版本)源代码讲解(memcache_set)

PHP_FUNCTION(memcache_add){    php_mmc_store(INTERNAL_FUNCTION_PARAM_PASSTHRU,"add");}PHP_FUNCTION(memcache_set){    php_mmc_store(INTERNAL_FUNCTION_PARAM_PASSTHRU,"set");}PHP_FUNCTI

2013-01-14 14:53:25 1128

原创 memcache扩展(0.2版本)源代码讲解(memcache_get_version)

PHP_FUNCTION(memcache_get_version){    zval *id;    注:zval结构,用来保存调用该方法的当前对象    mmc_t *mmc; 注:memcache连接对象    int inx;    char *version; 注:版本信息字符串    if ((id = getThis()) != 0) {

2013-01-14 13:07:53 443

原创 memcache扩展(0.2版本)源代码讲解(memcache_connect)

为什么要从0.2版本看,因为简单,代码量少//内核中的MC连接代码PHP_FUNCTION(memcache_connect){        zval **host, **port, **timeout;          注:三个zval结构,分别代码主机地址,端口,超时时间,都是二级指针。        mmc_t *mmc = NULL;

2013-01-08 14:18:17 1052

翻译 Extending and Embedding PHP-扩展和移植PHP(九)

数据创建现在你已经学会怎么从zval里面取数据了,是时候创建自己的数据了。zval可以在方法前面声明严格的变量,可以存在本地,也可以被复制离开这个方法,进入用户空间。因为你总是想以某种形势让你创建的zval变量进入用户空间,想分配一块内容给这个变量,并把一个zval指针指向它。再次声明,使用malloc(sizeof(zval))并不是一个好的方式,而应该使用MAKE_STD_ZVAL(p

2012-12-23 23:09:57 692

翻译 Extending and Embedding PHP-扩展和移植PHP(八)

第二章 由里到外讲变量每种程序语言最常见的就是存取变量,PHP也不例外,虽然很多语言都要求在使用之前声明变量类型,但PHP可以虽然声明变量,存储任意类型的值。当需要存储时,会马上转为需要的类型。由于你使用PHP的关系,可能你对此不熟悉,在本章里,我们将讲解PHP的父语言-C,在C里变量是怎样编码的,在C里变量需要严格的类型声明。当然,给变量编码只是工作的一半,为了保存这些信息,还需要一

2012-12-22 15:21:36 550

翻译 Extending and Embedding PHP-扩展和移植PHP(七)

不可预知的全局存取:在创建扩展时,你不知道运行的环境是否需要线程。通常情况下,在头文件里会定义ZTS标志,当PHP在线程安全环境下运行时,或者由于SAPI的需要,或者由于设置了这个enable-maintainer-zts参数,就会通过类似这种指令#ifdef ZTS来定义。正如你前面看见到,只有在线程安全池里分配资源是有意义的,并且PHP被编译运行在线程安全的环境下。这就是为什么在前面要

2012-12-17 20:42:57 2139

翻译 Extending and Embedding PHP-扩展和移植PHP(六)

zend 线程安全在PHP发展初期,只做为单进程CGI方式运行不关心线程安全,因为进程空间不会在请求执行完后还存在,一个内部变量只要被正确的初始化,就能在全局范围内声明,存取和改变,且不计后果。任何没有被清理的资源都会在CGI进程销毁时被释放。后来,PHP被嵌入到多进程的WEB服务器中,例如APACHE,一个内部变量仍然能够通过动态的请求被全局定义和安全的存取,只要在请求的开始它被正确的初

2012-12-13 15:59:11 958

翻译 memcache通信协议(一)

memcache的客户端和服务器端的通信通过TCP连接(UDP也是可以的,具体内容在UDP协议里),memcache服务器端监听一些可配置的端口,客户端连接到这个端口,向服务器端发送命令,读取响应,关闭连接。没必要发送命令去关闭这个会话。客户端只有在完全不需要它的时候才会关闭它。注意,客户端鼓励缓存连接,而不是每次存取数据都重新打开。这是因为memcache被设计成在打开大量连接(有时是成百上

2012-12-11 18:11:08 804

翻译 Extending and Embedding PHP-扩展和移植PHP(五)

多线程模式的生命周期PHP越来越多被以多线程的方式应用于网站服务器中,作为SAPI的接口提供给IIS或者apache工作站。在多线程模式下,网站服务器在任何时候都只开启一个进程,但在这个进程空间里有多个线程同时在执行,这种方式减少一些性能消耗,包括避免重复调用MINIT和MSHUTDOWN方法,全局变量一次分配完资源并初始化,并且为大量请求间共享信息提供了途径。图1.4显示了在PHP中的一个平

2012-12-05 20:15:31 808

翻译 Extending and Embedding PHP-扩展和移植PHP(四)

多进程模式的生命周期这也是最常用的配置模式,在apache1或者apache2里都被经常使用,很多其它服务器也一样适合,本书后续部分都是与多进程模式相关。之所以被称为多进程模式,是因为当apache启动时,会马上创建一些子进程,每个子进程都有自己的进程空间和方法,并且彼此独立。一个子进程的PHP实例的生命周期如图1.2,唯一的变化是多个请求被放在了一对MINIT/MSHUTDOWN中间。

2012-12-05 20:13:50 933

翻译 Extending and Embedding PHP-扩展和移植PHP(三)

生命周期PHP实例,不管来自脚本的还是来自命令行,都包含前面介绍的一些事件,包括请求/模块初始化/关闭事件,以及脚本本身的执行。执行的次数和频率取决于具体的SAPI,四个常见的SAPI配置是包括CLI/CGI模式,多进程模式,多线程模式,嵌入式模式。CLI模式的生命周期CLI模式在单请求中是很特别的,这种模式下请求仍然是独立的的循环执行这些步骤。图1.1显示从命令行调用脚本test.p

2012-12-05 20:12:30 643

翻译 Extending and Embedding PHP-扩展和移植PHP(二)

一个RINIT方法如下:/* 在每个请求的开始处运行*/PHP_RINIT_FUNCTION(myextension){zval *myext_autoglobal;/* 初始化一个全局变量* 在MINIT 方法中声明一个空数组,和PHP中的* $_MYEXTENSION = array()等价;*/ALLOC_INIT_ZVAL(myext_autoglo

2012-12-04 21:02:04 703

翻译 Extending and Embedding PHP-扩展和移植PHP(一)

第一章 PHP生命周期在一个常见的WEB服务器环境里,你根本无法明确什么时候开启PHP解释器。只有在PHP脚本被请求的时候,你才会启动apache或者其它服务器,它们会载入PHP并运行。它们都以SAPI的方式开始命令行虽然看起来非常不同,但实际上以相同的方式运行。在系统提示符下输入的PHP命令,启动“命令行SAPI”,就像一个微形的网站服务器,服务于一个单一的请求。当脚本被执行完毕时,

2012-12-04 21:01:46 1714

原创 php中htmlentities原理

htmlentitieshtmlentities ( string string [, int quote_style [, string charset]]) 转换字符串为HTML字符编码1) string:需转义的原字符串2 )quote_style:Constant NameDescriptionENT_COMPATWill convert

2012-08-06 16:05:30 545

原创 win7下apache配置入门

1.1 打开文件Apache2\conf\httpd.conf文件,找到#Include conf/extra/httpd-vhosts.conf代码,去掉前面#1.2 打开conf/extra/httpd-vhosts.conf 文件,增加虚拟主机        ServerName abc.test.com        DocumentRoot "C:/wamp/www2"

2012-08-04 14:52:45 382

原创 今天收获

1  Linux修改目录下所有子目录及文件写权限命令:chmod -R a+w *2   ZendStudio中建立Remote Server Support ,右键项目-〉Properties-〉Remote Server Support,配置服务器地址,账号信息和所在目录。    配置好后可在ZendStudio中直接提交到开发服务器:右键项目-〉Remote Servers-〉Upl

2012-08-04 14:52:11 287

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除