taoCMS是基于php+sqlite/mysql的国内最小(100Kb左右)的功能完善的CMS管理系统

php的memcached扩展的一致性哈希配置与常量

php memcached的一致性哈希设置:$mem = new Memcached;$mem->addServers(array(array('10.8.8.32',11300,100),array('10.8.8.32',11301,0)));$mem->setOption(Memcached::OPT_DISTRIBUTION, Memcached::DISTRIBUTION_CONSISTENT);$mem->setOption(Memcached::OPT_HASH, Memcached::HASH_CRC);常量如下:下列常量由此扩展定义,且仅在此扩展编译入 PHP 或在运行时动态载入时可用。Memcached::OPT_COMPRESSION开启或关闭压缩功能。当开启的时候,it
发布时间:2014-02-26 | 类别:未分组 | 阅读:262045 | 评论:0 | 标签:php php

C++ vs. Python vs. Perl vs. PHP performance benchmark

Update: There is a part #2 of the benchmark results. This page has been translated intoSpanish by Maria Ramos.This all began as a colleague of mine stated that Python was so damn slow for maths. Which really astonished me and made me check it out, as my father told me once that he was very satisfied with Python, as it was very maths oriented.T
发布时间:2014-02-10 | 类别:技术文章 | 阅读:300628 | 评论:1 | 标签:php php php php php

php的数组与spl固定数组

php固定数组隶属于php标准库(spl)的一种数据结构。和php普通数组相比,固定数组只能用整形定义其下标,并且如名字所示,是固定长度,它的优点是比普通数组占用的内存少,而且更快速,具体原因下文会做分析,先做一个简单的测试,将10W个a放入到数组中。define("MAX", 100000); //simple array function simple_arr() { $i = MAX; $arr = array(); while ($i--) $arr[$i]= 'a'; } // fix array function fix_arr() { $i = MAX; $arr = new SplFixedArray(MAX);
发布时间:2014-02-07 | 类别:技术文章 | 阅读:204214 | 评论:2 | 标签:php php

PHP中的gzcompress gzdeflate gzencode函数

PHP中存在一组看起来很像的压缩解压函数:压缩函数:gzcompress gzdeflate gzencode解压函数:gzuncompress gzinflate gzdecodegzdecode是PHP 5.4.0之后才加入的,使用的时候要注意兼容性问题。这几个函数都以gz开头,让人想到gzip压缩,而光看函数名却又看不出它们之间的区别,只能查文档。gzcompress gzdeflate gzencode函数的区别在于它们压缩的数据格式不同:gzcompress使用的是ZLIB格式;gzdeflate使用的是纯粹的DEFLATE格式;gzencode使用的是GZIP格式;但是有一点是相同的,它们压缩数据时都使用了DEFLATE压缩算法(理论上ZLIB和GZIP格式可以使用其他的压缩算法,但是目前实践中只使
发布时间:2013-11-26 | 类别:技术文章 | 阅读:185652 | 评论:1 | 标签:php php

PHP扩展编写:参数,数组,以及ZVAL「续」

原文:http://devzone.zend.com/node/view/id/1023拷贝 VS 引用这有两个方法来引用一个zval。第一种,上面介绍过的,叫做copy-on-write referencing。第二种,叫做full referencing,就是用户空间脚本编写者非常熟悉的「引用」关系,当写出如下代码:$a = &$b;的时候就会发生。 在一个zval中,这两种类型通过成员is_ref区分开来,当is_ref为0的时候是拷贝引用(copy references),非0的时候就是完全引用(full references)。注意一个zval不可能既是拷贝引用,又是完全引用。所以如果一个变量刚开始is_ref值非0,然后作为一个拷贝被赋给了一个新变量,那么肯定会执行一个完全拷贝。考虑下面的用
发布时间:2013-08-14 | 类别:技术文章 | 阅读:170713 | 评论:0 | 标签:php php

PHP扩展编写:PHP和Zend介绍

介绍如果你在读这篇入门文章,那么你可能对写PHP扩展有点兴趣。如果不是… 好吧,那么等我们写完这篇文章,你将会发现一个之前自己完全不知道,但是非常有趣的东西。这篇入门文章假设你对PHP语言和以及PHP的编写语言C语言都有一定的熟悉。让我们以“为什么你需要写一个PHP扩展”作为开始。因为PHP语言本身抽象程度有限,有一些库或者操作系统级别的调用,不能用PHP直接调用。你想给PHP添加一些与众不同的行为。你已经写了一些PHP代码,但是当运行的时候你知道它可以更快,更小,消耗的内存更少。你有一部分程序想出售,你可以把它写成扩展,这样程序是可以执行的,但是别人却无法看到源码。这儿有很多完美的原因,但是要想创建一个扩展,你首先要需要明白什么是扩展。什么是扩展?如果你用过PHP,那么你就用过扩展。除了一些极少的特殊情况之外
发布时间:2013-08-14 | 类别:技术文章 | 阅读:202841 | 评论:0 | 标签:php

PHP扩展编写:参数,数组,以及ZVAL

原文:http://devzone.zend.com/node/view/id/1022介绍在这个系列教程的第一部分,你已经了解了一个PHP扩展的基本框架结构。你声明了一个简单的函数,这个函数向调用它的脚本返回静态和动态的值,定义了INI配置项,以及声明了内部的值(全局变量)。在这个教程中,你将会知道如何接收传递到你函数中的参数,并且认识到PHP和Zend Engine在内部是如何管理变量的。接收参数不像在用户空间的代码那样,一个内部函数的参数实际上不会声明在函数的头部。相反,参数列表的引用会传递到每个函数中 – 不管参数传递了没有 – 接下来函数就可以让Zend Engine把这些参数变成可以使用的变量。让我们来看一下这个过程,我们定义了一个新函数,hello_greetme(),这个函数会接收1个参数,然后
发布时间:2013-08-14 | 类别:技术文章 | 阅读:211181 | 评论:0 | 标签:php php

PHP扩展开发笔记

由 moxie 撰写  http://blog.zoeey.org/2012/05/07/note-of-php-extension-dev/PHP扩展开发笔记开发环境CentOS 5.5 64-bitPHP 5.3.12为方便识别文章中PHP bin目录均使用绝对路径。自行编写时可加入$PATH。从目录创建到执行测试 mkdir -p /tools/php/src mkdir -p /tools/download cd /tools/download wget http://cn.php.net/distributions/php-5.3.12.tar.bz2 tar -xf /tools/download/php-5.3.12.ta
发布时间:2013-08-10 | 类别:技术文章 | 阅读:269024 | 评论:0 | 标签:php php

warning: implicit declaration of function 'php_var_dump' is invalid in C99解决方法

编译扩展时遇到这个警告:/var/www/php-5.3.26/ext/taodemo/taodemo.c:670:9: warning: implicit declaration      of function 'php_var_dump' is invalid in C99      [-Wimplicit-function-declaration]        php_var_dump(args[i], 1 TSRMLS_CC);        ^1 warning generated.引入php_var.h文件即可:#include "ext/stan
发布时间:2013-08-09 | 类别:技术文章 | 阅读:344120 | 评论:0 | 标签:php php php

php内核:变量的赋值和销毁

在强类型的语言当中,当使用一个变量之前,我们需要先声明这个变量。然而,对于PHP来说, 在使用一个变量时,我们不需要声明,也不需要初始化,直接对其赋值就可以使用,这是如何实现的?变量的声明和赋值在PHP中没有对常规变量的声明操作,如果要使用一个变量,直接进行赋值操作即可。在赋值操作的同时已经进行声明操作。 一个简单的赋值操作:$a = 10;使用VLD扩展查看其生成的中间代码为 ASSIGN。 依此,我们找到其执行的函数为ZEND_ASSIGN_SPEC_CV_CONST_HANDLER。 (找到这个函数的方法之一:$a为CV,10为CONST,操作为ASSIGN。 其他方法可以参见opcode处理函数查找) CV是PHP在5.1后增加的一个在编译期的缓存。如我们在使用VLD查看上面的PHP代码生成的
发布时间:2013-03-11 | 类别:技术文章 | 阅读:195268 | 评论:0 | 标签:php php

公告

taoCMS发布taoCMS 3.0.2(最后更新21年03月15日),请大家速速升级,欢迎大家试用和提出您宝贵的意见建议。

捐助与联系

☟请使用新浪微博联系我☟

☟在github上follow我☟

标签云