如果你曾经做过PHP的扩展,或者研究过PHP的源码,你就会看到这个东西到处都在。但是关于这个东西是什么,却鲜有资料叙及。
对于这个东西是什么,最常见的回答就是“你不用关心这个是什么,你只要在‘这里’‘那里’用上就是了,如果编译器告诉你缺少tsrm_ls,加上就好了 ”。这个答案虽然是一种很敷衍的回答,但其实也是有一定道理的,因为Zend Engine把这个宏搞的太复杂,并且对于一个初学PHP扩展的开发者来说,了解它是什么也没有太大的益处。
而我是一个喜欢追根究底的人。所以,如果你现在刚好比较闲,并有耐性了解这个东西是什么,那么就请继续读下去…
[阅读全文]
在js中,作用域的概念和其他语言差不多, 在每次调用一个函数的时候 ,就会进入一个函数内的作用域,当从函数返回以后,就返回调用前的作用域,但js的实现方式却和一般语言不同,并非用“堆栈”方式,而是使用列表….. [阅读全文]
一封通信记录。关于Apache的启动过程的分析。 [阅读全文]
PHP Pallas CMS是由我在学生时期独立自主开发的一个内容管理系统, 支持
新闻管理,
会员管理,
栏目管理,
日志记录,
数据库备份,
角色,
投票,
留言,
评论,
以及动态生成静态页面功能等。
这个CMS已经应用于多个网站,如UIR所有的2级网站,==
Pallas遵循开源软件精神,任何人只要在保留我的信息的前提下,可以自由修改和使用。
源码地址:http://code.google.com/p/pallas/downloads/list
实例:
http://bbs.uir.cn/graduate
http://dxcstore.cn/
http://bbs.uir.cn/english/
Demo地址:http://pallas.laruence.com/pscms_admin/ 用户名:test, 密码:test [阅读全文]
我们知道在Javascript中,可以使用事件处理函数来监听事件,在事件处理函数中,我们可以通过当前的事件对象(IE: window.event ; firefox parameter event)来获取到事件发生的对象。
比如,在IE中
function eventHandler = function(e){
var ev = e || window.event ; //window.event for IE, para e for ff
var el = evt.srcTarget || evt.srcElement; // compatible with IE
//then el is the [...] [阅读全文]
在MySQL4.1中子查询是不能使用LIMIT的,手册中也明确指明 “This version of MySQL doesn’t yet support ‘LIMIT & IN/ALL/ANY/SOME subquery’ ”
也就是说,这样的语句是不能正确执行的。
select * from table where id in (select id from table limit 10);
但是,,但是,,,只要你再来一层就行。。如:
select * from table where id in (select t.id from (select * from table limit 10)as t)
你说说,MySQL是不是很让人无语?? [阅读全文]
Zend Engine 将 PHP的执行机制划分为编译和执行无疑是革命性的举动。但现在看来,这似乎还未完全将这个思想贯彻到底。当前的Zend Engine虽然把编译和执行分成两个步骤来做,但这两个步骤对一个普通 .PHP脚本文件来说确是连续的。换句话说,当web服务器开始处理一个 php 脚本请求后,它将不得不每次都进行编译和执行两个步骤。很明显,对于一个开发完成不再进行经常性的修改的php脚本来说,这将是巨大的性能损失…. [阅读全文]
做web开发的朋友都清楚,js程序的调试是相当郁闷的,因为首先这种语言语法比较灵活,它是一种弱类型的脚本语言,很多错误是无法控制的,这些不谈,最痛苦的是没有什么好的调试工具,现在的情况比以前稍好,在Firefox下还有firebug,这的确是一个不错的js调试工具,但在IE下使用就很麻烦,而且效果很不好,鄙人一直苦于寻找一个很好的IE下的js调试工具,能够自动捕获错误,并定位位置和原因,没想到今天竟在无意中寻找到了这么个好工具,不敢私藏,共享出来,希望能为各位web开发者带来方便 这个工具的名字叫Companion.JS, [阅读全文]
Gvim和Vim即使使用一样的配色方案,颜色也会有少许的差别, 我比较喜欢Vim的desert, 经过一番努力,终于搞得俩边看起来基本一样了(注意:只是针对desert )。 在gvim的_vimrc中添加如下:
hi SpecialKey guifg=Blue
hi MoreMsg guifg=Green
hi Visual guifg=NONE guibg=NONE gui=reverse cterm=reverse
hi Folded ctermbg=4 guibg=Blue
hi FoldColumn ctermbg=7
hi DiffAdd guibg=Blue
hi DiffChange guibg=Magenta
hi DiffDelete guibg=Cyan
hi Normal guifg=Gray guibg=Black20
hi Cursor guibg=White
hi lCursor guibg=White
hi Comment guifg=Cyan
hi Constant guifg=Magenta
hi Special guifg=Magenta
“hi Special guifg=Red
hi Identifier guifg=Cyan
hi Statement guifg=Yellow
hi PreProc guifg=Magenta
hi Type guifg=Green [...] [阅读全文]
最近要给Yahoo的同事们做一个关于PHP和Apache处理请求的内部机制的讲座,刚好写了些关于Opcodes的文字,就发上来了,这个文章基于 Sara Golemon的 Understanding OPcode [阅读全文]