定制自己的PHP语法-在PHP中实现unless
nick | php | 2010-07-24
首先 ,插一句题外话: 从我发表第一篇PHP执行原理的文章到现在, 已经快2年了, 我很高兴的看到这俩年里PHP中文圈里 ,越来越多的人开始研究PHP源码, 也有越来越多的人开始从事PHP扩展开发.
关于PHP的执行原理, 我想我BLOG的读者都能脱口而出:
1. 词法分析, 去掉注释, 空白, 得到TOKEN
2. 语法分析, 在这个过程中生成Opcode array (op_array)
3. 解释执... [阅读全文]
概论为什么PHP全局变量不能生效
nick | php | 2010-07-06
概论为什么PHP全局变量不能生效
我们应当通过尽量减少多级和函数中include文件来防范PHP全局变量 不能生效这一问题。实在不行,我们就尽量不用全局变量。
对于一个新手在实际操作PHP语言定义一个全局变量 的时候,往往会出现很多问题。比如,他们会一直以为,全局变量(使用global声明)是在程序的所有地方都可以用的(不然怎么能叫全局?呵)。
代码... [阅读全文]
PHP调试技术手册发布(1.0.0 pdf)
nick | php | 2010-06-27
黑夜路人前段时 间, 本着分享/总结的精神, 计划要总结下PHP常用的调试技术, 就一些问题找到了我..
如今第一版的PHP调试技术手册已经发布.
冠以我名, 我甚感惶恐, 只能一并赞下小黑的nice了~
下载地址: http://heiyeluren-doc.googlecode.com/files/PHP-Debug-Manual-public.pdf
目录:
1 内置API输出调试
1.1 基本调试API
1.1.1 echo (print):
1.1.2 ... [阅读全文]
深悉正则(pcre)最大回溯/递归限制
对于如下的正则:
/<script>.*?<\/script>/is
当要匹配的字符串长度大于100014的时候, 就不会得出正确结果:
$reg = "/<script>.*?<\/script>/is";
$str = "<script>********</script>"; //长度大于100014
$ret = preg_repalce($reg, "", $str); //返回NULL
难道正则对匹配的串有长度限制?
不是, 当然不是, 原... [阅读全文]
一个 php 对象数组转型的神奇结果
nick | php | 2010-06-14
群里说起 php 的数组 key 的类型转换问题,
比如 $a = array(‘123’=>’abc’); var_dump($a); 会发现 key 会变成整数。用 $a[‘123’] 这种方式访问数组的时候,也会先把 key 转换成整数。突然想到能不能构造一个实际 key 为字符串形式的数字的数组,或者整数型属性名的对象(对象内部也是个 hash,也同时支持整... [阅读全文]
在服务端合并和压缩JavaScript和CSS文件
Web性能优化最佳实践中最重要的一条是减少HTTP 请求,它也是YSlow中 比重最大的一条规则。减少HTTP请求的方案主要有合并JavaScript和CSS文件、CSS Sprites、图像映射 (Image Map)和使用Data URI来编码图片。CSS Sprites和图像映射现在已经随处可见了,但由于IE6和IE7不支持Data URI以及性能问题,这项技术尚未大量使用。目前大部分网页中的JavaScri... [阅读全文]
PHP类型转换相关的一个Bug
nick | php | 2010-05-26
PHP为了避免数字索引和数字字符串索引(注1)的混乱, 引入了zend_symtable_*系列函数, 并应用于数组中.
这样一来, 数字字符串索引也就会被当作数字索引, 然而总是有一些情况, 是PHP的维护者没有想到的…
比如, 类型转换时刻:
鉴于很多朋友好心的提示, 使用json_deocde的第二个参数就可以直接得到数组.
我说明下, 如下的代码是我有意而为之, 并不是为了jso... [阅读全文]
DBKiss
DBKiss是一个由单一的PHP文件构成的数据库浏览工具,支持MySQL和PostgreSQL数据库, 支持数据的导入和导出、可对整个数据库或者是单个表进行数据搜索,提供一个高级的SQL编辑器、模板保持、多查询同时执行等功能。
http://www.gosu.pl/dbkiss/ 【下载】
[阅读全文]
推荐个PHP调试工具PHP DEBUG TOOLS
发现调试PHP源码的好同志 PHP DEBUG TOOLS
其项目地址: http://freshmeat.net/projects/php-debug-tools/
文件下载地址: http://freshmeat.net/urls/7c58ae3fecce5763e7546b958d36e082
目前是1.03版本
这里偶的环境是WINDOW XP , APACHE2.2, PHP5.2+ Zend Optimizer,
这里结合PHP DEBUG TOOLS的帮助文档来讲解,图有些是摘自文档.
一.安装篇
安装前的准... [阅读全文]