PHP
文章平均质量分 71
siren0203
这个作者很懒,什么都没留下…
展开
-
YAR 并行RPC框架研究
前几天,部门召开了PHP技术峰会 学习会议,大家分别对这次会议的PPT 做了简单的介绍,其中提到了 鸟哥【惠新辰】的一篇PPT《微博LAMP 演变》,如果谁有需要可以去谷歌搜,或者去http://www.laruence.com/2013/08/15/2913.html 他的博客去看一下,我就不提供下载链接了。这篇PPT中提到了几个点: Yaf,Yac,Yar;我们会后也分任务对这些去做一些了解原创 2013-09-03 18:02:55 · 17116 阅读 · 0 评论 -
原创:PHP内核研究之类的实现
声明:本文为斯人原创,全部为作者一一分析得之,有不对的地方望赐教。博客地址:PHP技术博客 在CSDN也会同步更新的哦.欢迎转载,转载请注明出处 这几天比较忙哦..没有时间写..周末了多写几篇吧.目前大部分语言都支持类.类是什么?类就是面向对象,简称OOP.英文名字 Object Oriented Programming.面向对象是什么?是一种编程架构.OOP的一条基本原创 2012-03-10 19:48:24 · 2595 阅读 · 0 评论 -
PHP内核研究: PHP源码目录分析
声明:本文为斯人原创,全部为作者一一分析得之,有不对的地方望赐教。博客地址:PHP技术博客 在CSDN也会同步更新的哦.欢迎转载,转载请注明出处SIREN_SETTING 我的PHP版本:PHP5.3源码我的系统环境 FreeBSD我的编辑器 VIM+CTAGS开始吧.php5.3源码包的目录其实还是很清晰的比较重原创 2012-03-10 19:21:15 · 1458 阅读 · 0 评论 -
原:PHP内核研究 函数的定义
声明:本文为斯人原创,全部为作者一一分析得之,有不对的地方望赐教。博客地址:PHP技术博客 在CSDN也会同步更新的哦.欢迎转载,转载请注明出处 PHP中,函数的定义 是用关键字 function来定义的.function hello($str){echo $str;}在/zend/zend_language_parse.y中找到 关键字 T_FUN原创 2012-03-10 19:43:54 · 1225 阅读 · 0 评论 -
原创:PHP内核研究:数组的创建
声明:本文为斯人原创,全部为作者一一分析得之,有不对的地方望赐教。博客地址:PHP技术博客 在CSDN也会同步更新的哦.欢迎转载,转载请注明出处 PHP之所以发现这么迅速,有很大原因是因为数组数据非常好处理,而且它可以存储其他类型的数据数组的值存储在zvalue_value.ht字段中,ht是一个HashTable的数据有关于HashTable的知识请移步 >>原创 2012-03-10 19:43:22 · 1556 阅读 · 0 评论 -
原创:PHP内核研究 静态变量
声明:本文为斯人原创,全部为作者一一分析得之,有不对的地方望赐教。博客地址:PHP技术博客 在CSDN也会同步更新的哦.欢迎转载,转载请注明出处 静态变量它可以是 静态全局变量,如果不调用unset,那么这个静态变量会一直存在,直到程序退出时才由Zend内存管理来释放它可以是 静态局部变量:在函数里定义,函数执行完后,该静态变量不会消失它可以是原创 2012-03-10 19:40:41 · 1028 阅读 · 0 评论 -
原创:PHP内核研究:HASH表和变量
PHP HASH表在PHP中,所有的数据 无论变量,常量,类,属性 都用Hash表来实现.先要说说 HASH表[c]typedef struct bucket { ulong h; /* Used for numeric indexing */ uint n原创 2012-03-10 19:39:14 · 1357 阅读 · 0 评论 -
以HTMLEditor为例讲解在线编辑器的基本实现原理
如今网上多数的编辑器都有很强大的功能,相对而言,在使用中也需要很多的配置,当然代码也自然会比较“臃肿”。如果我们并不需要功能那么强大的编辑器,那么可以自己实现一个,因为代码并不复杂。下面是一点个人的经验,仅供参考(以ExtJS的HTMLEditor为例)。 1、初始转载 2011-09-28 15:58:34 · 2535 阅读 · 0 评论 -
/usr/local/php-5.2.14/sbin/php-fpm start Starting php_fpm –fpm-config
1.将fpm打包放到php源代码中gzip -cd php-5.2.8-fpm-0.5.10.diff.gz | patch -d php-5.2.8 -p12.编译安装php 记得带上–enable-cgi –enable-fpm 两个参数哦。遇原创 2011-09-06 17:43:09 · 5676 阅读 · 0 评论 -
PHP正则表达式 /i, /is, /s, /isU等参数含义详解
<br /><br />PHP正则表达式模式后面通常带有 /i, /is, /s, /isU等参数,那么这都是些什么东西呢?下面我们一起来看看:<br />i 匹配大小写<br />s 模式中的圆点元字符(.)匹配所有的字符,包括换行符<br />x 模式中的空白字符除了被转义的或在字符类中的以外完全被忽略,在未转义的字符类之外的 # 以及下一个换行符之间的所有字符,包括两 头,也都被忽略<br />A (PCRE_ANCHORED) 如果设定了此修正符,模式被强制为“anchored”,即强制仅从目标字原创 2011-04-22 15:04:00 · 1507 阅读 · 0 评论 -
php+mysql无限级分类(非递归)
<br /><br />要实现无限级分类,递归一般是第一个也是最容易想到的,但是递归一般被认为占用资源的方法,所以很多系统是不考虑使用递归的<br />本文还是通过数据库的设计,用一句sql语句实现<br />数据库字段大概如下:<br />-----------------------------------------------------------------------------------<br />id 编号<br />fid 父分类编号<br />class_name 分类名<br />原创 2011-04-22 15:02:00 · 1257 阅读 · 0 评论 -
用PHP计算相对路径
<br /><br />假如现在有两个路径:<br />$a = "/a/b/c/d/test.php";<br />$b = "/a/b/e/f/other.php";<br />请用PHP设计一个函数,计算出$b相对于$a的路径。<br />大致算法就是: 根据‘/’把路径拆分放进数组,然后从第一个开始比较,相同的忽略掉,直到遇到不同的为止。<br /><?php<br />$a = "/a/b/c/d/test.php";<br />$b = "/a/b/e/f/other.php";<br />/原创 2011-04-22 15:01:00 · 1264 阅读 · 0 评论 -
一个不错的博客地址
<br />http://blog.163.com/lgh_2002/blog/原创 2011-04-22 15:07:00 · 1363 阅读 · 0 评论 -
memcached,eAccelerator区别与用途
<br />eAccelerator和memcached,是目前较为主流的两个可使用在PHP之中的缓存加速工具.<br /><br /> eAccelerator专门为PHP开发,而memcached不仅仅用在PHP之中,其他所有的语言都可以使用.<br /><br /> eAccelerator的主要功能:<br /><br /> 1. 缓存PHP文件的执行代码:在被缓存的代码再次被调用时,将直接从内存读取,从而在很大程度了PHP运行的速度.<br /><br /> 2. 提供了共享内存操作函数:原创 2011-04-22 14:38:00 · 1478 阅读 · 0 评论 -
把PHP代码编译成C/C++代码,使你的php跑得更快
<br />FaceBook 发布了一款能将php代码转换为C++的工具,hiphop<br />如果你的网站很大,类似新浪这样的大型门户,可以考虑。<br />目前已经在CentOS和ubuntu等Linux服务器上编译通过。<br />安装:<br />一、需要依赖的包<br />cmake 2.6 is the minimum versiong++/gcc 4.3 is the minimum versionBoost 1.37 is the minimum versionflexbisonre2cl原创 2011-04-21 14:26:00 · 4133 阅读 · 0 评论 -
PHP与MYSQL事务处理
/*MYSQL的事务处理主要有两种方法。1、用begin,rollback,commit来实现begin 开始一个事务rollback 事务回滚commit 事务确认2、直接用set来改变mysql的自动提交模式MYSQL默认是自动提交的,也就是你提交一个QUERY,它就直接执行!我们可以通过set autocommit=0 禁止自动提交set autocommit=1 开启自动提交来实现事务的处理。当你用 set autocommit=0 的时候,你以后所有的SQL都将做为事务处理,直到你用commit确转载 2011-04-11 13:29:00 · 2587 阅读 · 0 评论 -
原:PHP内核研究 函数的参数
在上一节中,分析了函数的定义,函数的定义只是将函数名注册到函数列表的过程.下面继续分析函数的参数.如果没有看就移步到>>原:PHP内核研究 函数的定义,,function $test($arg=11){}还是要看Lex的语法分析[c]unticked_function_declaration_statement: fun原创 2012-03-10 19:44:55 · 1472 阅读 · 0 评论 -
原:PHP内核研究 函数的返回值
声明:本文为斯人原创,全部为作者一一分析得之,有不对的地方望赐教。博客地址:PHP技术博客 在CSDN也会同步更新的哦.欢迎转载,转载请注明出处 上一节讲到 函数的参数下面继续分析函数的返回值..从根本来说,PHP的每个函数或方法都存在返回值,可能有的时候不写return,这个时候 会返回NULL.[php]function test(){ re原创 2012-03-10 19:45:27 · 1690 阅读 · 0 评论 -
PHP命令执行PHP脚本,结束之前,内存会回收吗?
在往下看之前,如果你不明白什么是GC (Garbage Collection) 的话,那一定要先去了解GC,不然你根本不知道我在说什么!Links:http://www.php.net/manual/en/features.gc.phphttp://blog.csdn.net/phpkernel/article/details/5734743============================原创 2013-04-25 23:03:22 · 8621 阅读 · 1 评论 -
PHP的json_encode分析
json的优点就不说了,有个习惯,我在输出json的时候,喜欢用 sprintf 拼成json格式,前两天被朋友说不标准,必须要用json_encode生成的才是标准的json格式,我当然很郁闷啦,用了这么多年了,刚知道 这样做不标准,既然说我不标准,那上面才是标准的json格式?1234{a : 'abc'}{'a' : 'abc'}{a : "abc"}{"a" : "abc"}那都知道,只有原创 2013-04-25 23:06:13 · 9442 阅读 · 0 评论 -
PHP语法分析器:RE2C && BISON 总结
声明:本文为斯人原创,全部为作者一一分析得之,有不对的地方望赐教。欢迎转载,转载请注明出处 。本文地址:http://imsiren.com/archives/647在这之前,我曾经尝试过一个项目,就是将我们的PHP代码自动生成so扩展,编译到PHP中,我叫它 phptoc。但是由于各种原因,暂停了此项目。写这篇文章一是因为这方面资料太少,二是把自己的收获总结下来,以便以后参考,如果能明白PHP语原创 2012-10-18 15:10:25 · 9091 阅读 · 2 评论 -
如何在扩展里调用PHP函数呢?
声明:本文为斯人原创,全部为作者一一分析得之,有不对的地方望赐教。欢迎转载,转载请注明出处 。本文地址:http://imsiren.com/archives/606在写扩展的时候,肯定不能什么功能都自己实现,原因有很多,开发效率、性能问题、维护成本等。这就避免不了要在扩展里调用PHP内核函数。那么如何在扩展里面使用我们的内置函数呢?PHP既然有函数,肯定提供了调用函数的接口,这里有两个函数:ZE原创 2012-06-19 22:25:20 · 10653 阅读 · 0 评论 -
自己写PHP扩展之实现类的继承
声明:本文为斯人原创,全部为作者一一分析得之,有不对的地方望赐教。欢迎转载,转载请注明出处 。本文地址:http://imsiren.com/archives/593如果我们想继承某一个类,我们怎么办?比如 Siren类继承Secure类.class Secure{ public function test(){ echo "this is Secure::test"原创 2012-05-05 20:23:21 · 8275 阅读 · 1 评论 -
自己写PHP扩展之创建一个普通变量
声明:本文为斯人原创,全部为作者一一分析得之,有不对的地方望赐教。欢迎转载,转载请注明出处 。本文地址:http://imsiren.com/archives/568PHP写扩展..如果您还么有读 原:用C/C++扩展PHP建议您先看一下 这篇文章..今天来个简单的..我们用扩展方式创建一个变量 $siren.然后在PHP文件里面输出这个变量.1. 执行源码目录中的 ext_skel –extn原创 2012-04-19 22:41:43 · 6828 阅读 · 1 评论 -
原:用C/C++扩展PHP
声明:本文为斯人原创,全部为作者一一分析得之,有不对的地方望赐教。欢迎转载,转载请注明出处 。本文地址:http://imsiren.com/archives/547一个简单的扩展模块PHP非常容易扩展,因为它提供了我们想用的所有API.如果要新建一个扩展,需要在PHP源码中执行ext_skel位置 PHP源码目录/ext/ext_skel它有几个参数–extname=module module原创 2012-04-16 22:56:20 · 8306 阅读 · 0 评论 -
PHP内核函数研究之 intval
声明:本文为斯人原创,全部为作者一一分析得之,有不对的地方望赐教。欢迎转载,转载请注明出处 。本文地址:http://imsiren.com/archives/520趁热打铁 顺便说说 intval函数.该函数好像我们用的最多的就是在POST或者GET某个参数的时候,将其强制转换为int型,为了保证我们传入到SQL的时候是一个整形.,当然这只是其中一种用法..该函数接受两个原创 2012-04-08 21:55:10 · 6863 阅读 · 1 评论 -
自己写PHP扩展之操作类的属性和方法
声明:本文为斯人原创,全部为作者一一分析得之,有不对的地方望赐教。欢迎转载,转载请注明出处 。本文地址:http://imsiren.com/archives/581类创建好了..那么类肯定不止这些东西,它由继承,属性,返回值等.1.方法的参数.有方法,该方法就可能要有参数.参数是如何传递过来的呢?如果看过之前的文章.那么你肯定就知道了..是的 与普通函数的参数相同.声明char类型的指针用来保存原创 2012-04-26 21:46:29 · 9852 阅读 · 0 评论 -
自己写PHP扩展之创建一个类
声明:本文为斯人原创,全部为作者一一分析得之,有不对的地方望赐教。欢迎转载,转载请注明出处 。本文地址:http://imsiren.com/archives/572上一章用扩展创建了一个变量..这次来个大的..我们创建一个类.然后在php里面去调用这个类.生成扩展及修改 不知道的请点击这里 http://imsiren.com/archives/568这里就不谈了.比如我们要创建一个类..P原创 2012-04-25 21:48:45 · 11554 阅读 · 0 评论 -
原:PHP的执行流程,PHP扩展加载过程
声明:本文为斯人原创,全部为作者一一分析得之,有不对的地方望赐教。欢迎转载,转载请注明出处 。本文地址:http://imsiren.com/archives/535为了以后能够明白的开发PHP扩展..就一定要了解PHP的执行顺序..这篇文章就是为C开发PHP扩展做铺垫.web环境 我们假设为 apache.在编译PHP的时候,为了能够让Apache支持PHP,我们会生成一个m原创 2012-04-14 21:47:43 · 8424 阅读 · 1 评论 -
原:PHP数组函数研究:is_null,is_object,is_array,is_string,is_resource等
声明:本文为斯人原创,全部为作者一一分析得之,有不对的地方望赐教。欢迎转载,转载请注明出处 。本文地址:http://imsiren.com/archives/516前面有一篇文章 讲的是 PHP内核源码分析:isset与 empty但是好像忘记了一系列is函数如is_null,is_object,is_array,is_string,is_resour原创 2012-04-08 21:52:40 · 9156 阅读 · 0 评论 -
PHP内核研究之类的成员属性和方法
声明:本文为斯人原创,全部为作者一一分析得之,有不对的地方望赐教。博客地址:PHP技术博客 在CSDN也会同步更新的哦.欢迎转载,转载请注明出处上一章讲到类的实现这一篇要详细讲讲PHP类的成员属性及方法.上一篇中曾经介绍到zend_do_begin_class_declaration这个函数,它用来创建并初始化一个zend_class_entry类的所有信息都保原创 2012-03-10 21:51:26 · 3810 阅读 · 0 评论 -
原:PHP内核源码分析:isset与 empty
声明:本文为斯人原创,全部为作者一一分析得之,有不对的地方望赐教。博客地址:PHP技术博客 在CSDN也会同步更新的哦.欢迎转载,转载请注明出处 PHP内核函数里面有提供了两个函数用来检测 变量isset和empty这两个有什么区别?我们用PHP代码来检测一下[php]//第一种var_dump(empty($a)); //true 为空var原创 2012-03-10 19:42:38 · 3567 阅读 · 0 评论 -
PHP内置函数分析之strlen 与 mb_strlen
声明:本文为斯人原创,全部为作者一一分析得之,有不对的地方望赐教。博客地址:PHP技术博客 在CSDN也会同步更新的哦.欢迎转载,转载请注明出处 在PHP里 有两个计算 字符串个数的函数一个是 strlen,一个是mb_strlen;先来看看帮助手册的定义strlenstrlen — 获取字符串长度int strlen ( string原创 2012-03-10 19:42:07 · 3188 阅读 · 0 评论 -
原创:PHP内核研究 常量
声明:本文为斯人原创,全部为作者一一分析得之,有不对的地方望赐教。博客地址:PHP技术博客 在CSDN也会同步更新的哦.欢迎转载,转载请注明出处 常量什么是常量.常量就是不变的量.先看看常量的结构[c]typedef struct _zend_constant { zval value;//zval类型 int f原创 2012-03-10 19:39:56 · 3291 阅读 · 0 评论 -
Web开发人员应当知道的15个开源项目
<br /><br />如今,构建网站和开发Web应用程序已经不仅要求开发人员是一名优秀的程序员,更需要聪明的程序员。这也就是说,在可能的情况下,重复使用已有的代码和应用程序,而不是自己重头开始。<br />开源由来已久,并且很多网站的构建也使用了开源。开发人员都知道Linux、Apache、MySQL及PHP(LAMP)。<br />但是除那些之外的其他开源项目呢?作为一名Web开发人员,你可以借助诸多可用的项目,以节省开发时间,或提高程序性能。<br />下面让我们看一下哪些开源项目可供大家免费使用。<原创 2011-04-06 14:53:00 · 1180 阅读 · 0 评论 -
雅虎前端优化14准则
<br /><br />1.尽可能使用少的HTTP请求 Make fewer HTTP requests; <br /><br /> 这个是很重要的一条,具体措施是使用Image maps 和Inline Images;合并CSS和脚本代码。比如对于Image Maps <br />(服务器端)server-side <br /><a href="navbar.cgi"> <img ismap src="imagemap.gif"> </a>→ http://.../navbar.cgi?127,1原创 2011-04-02 16:50:00 · 1782 阅读 · 0 评论 -
Linux下php扩展模块开发
<br />项目做了快半年了,关于php的扩展模块开发,从完全不懂到边查资料边摸索,到现在的灵活运用,其间也经历了不少的困惑期,在此以文章记录,希望对有同样需求的人起到一定的帮助作用。<br /><br />一. 生成一个简单的php extension<br /><br />我们需要两个目录:php src,php bin,到网上下载一个php源码包,解压,安装。<br /><br />php的解压目录记为 phpsrc(如:/home/src/php-4.4.4) ,安装目录记为 phpbin(如 /u转载 2011-03-31 11:54:00 · 1417 阅读 · 0 评论 -
解决困惑已久的“接口”与“抽象”疑惑——力荐《php 接口类与抽象类的实际作用》【收藏】
<br /> <br />1.php 接口类:interface <br />其实他们的作用很简单,当有很多人一起开发一个项目时,可能都会去调用别人写的一些类,那你就会问,我怎么知道他的某个功能的实现方法是怎么命名的呢,这个时候php接口类就起到作用了,当我们定义了一个接口类时,它里面的方式是下面的子类必须实现的,比如 : 代码如下:<br />interface Shop { public function buy($gid); public function sell($gid); pu转载 2010-12-22 12:14:00 · 1594 阅读 · 1 评论 -
ThinkPHP框架研究之一 基本函数 M和D的区别
最近在研究 TP受益匪浅...今天就从 基本函数 M和D开始两个有共同点..都是实例化对象用的..但是 在使用时 两者却不一样...为什么??先看看代码函数Mfunction M($name = '', $class = 'Model'){ static $_model = array(); if (!isset($_model[$name . '_' . $class])) // 默认也就是 new Model($name) $_model[$原创 2010-10-29 15:43:00 · 10234 阅读 · 0 评论 -
thinkphp forward redirect 区别
呃,话说,好久没有写thinkphp的东西了,因为最近不忙的时候就很懒,不懒的时候就很忙,之前看的教程也不记得多少了。忽然间感觉只看教程貌似是不能解决啥问题的,还是得就着API来看源码,否则永远都是知其然而不知其所以然。刚正在看Action.class.php,里面有两个函数都是执行跳转用的,一个是forward 一个是redirect。那么二者到底有何区别呢?看了一下API,看了一下源码又翻了一下论坛,整理如下。有不同意见的欢迎拍砖。首先看代码注释,二者的描述是不相转载 2010-10-29 15:04:00 · 5085 阅读 · 1 评论