快有一个月没有更新Blog了, 一来是最近项目比较紧张, 二来就是在忙着开发Yaf(Yet another Framework) 一直以来, 我研究PHP的内核, 虽然有文章不少, 但却鲜有一些借助这...
博客广场
Yaf-一个PHP扩展实现的PHP框架
PHP stream未能及时清理现场导致Core的bug
同事发现一个在使用set_error_handler的时候, 能100%重现的core, 提炼后的重现代码如下(环境必须不能访问internet): <?php function err_handler(){ exit; return true;...
PHP的命名空间的实现
PHP的命名空间, 实现的还真是简单. 当你有如下代码: <?php namespace Yaf; class Application { } 其实就相当于, 你声明了一个名字为A\B的类, 当然, 你不能直接这么申明...
AllowEncodedSlashes in Apache
对于Apache来说, 如果URL和PATH_INFO中出现%2f(/)或者%5c(\), 会被认为这是个不合法的请求, Apache将会直接返回404结束. 对于使用mod_rewrite做URL改写的情况来说, 可能...
Mpass - PHP做Socket服务的解决方案
一般很少有用PHP做服务的, 但是如果你的已有业务逻辑都是PHP实现的, 而现在却需要基于已有的业务逻辑提供一套Socket服务, 怎么办? 当然, 解决方法很多, 但最简单的办法,...
[转载]技术文化和惨淡命运 —— 怀念中国雅虎
转载说明 :我的紫色情结. --作者是我以前小组的同事 很早就想写这么一篇文章了。我离开中国雅虎已经一年有余,在中国雅虎工作的那段时光是我最珍贵的回忆之一,和以前的...
PFA - PHP for Android
使用PHP在Android上做应用: Phpforandroid en View more presentations from ivmos. 项目主页: http://www.phpforandroid.net
如何获取一个变量的名字
比如, 我提供一个查询服务, 用户可以提交一个人的名字和年龄做为查询条件. 假设我要查询一个名字叫做"laruence", 年龄是27的人, 我认为这个人的定义的查询token可以写做...
Compilation failed: support for \P, \p, and \X has not been compiled
首先感谢DiaHosting给我赞助了一个免费的VPS. 今天我终于把blog(WordPress)迁移到了新的VPS上, 由于环境的不一致(原来是Apache+mod_php, 现在是lighttpd+php_cgi), 中间...
PHP是无辜的
今天在微薄看到一个转帖, 题目触目惊心《PHP的echo为什么这么慢》, 点进去一看, 大意是说在PHP中echo一个500K的字符串, 会耗时几百ms, 然后作者说打开Apache的压缩以后...
Expect:100-continue
在使用curl做POST的时候, 当要POST的数据大于1024字节的时候, curl并不会直接就发起POST请求, 而是会分为俩步, 发送一个请求, 包含一个Expect:100-continue, 询问Server...
HTTP 204和205的应用
之前和人讨论过这个问题,,, 今天感冒在家休息, 就回忆了一下, 整理如下. 我们很多的应用在使用Ajax的时候, 大多数情况都是询问型操作, 比如提交数据, 则Ajax只是期待服...
深入理解PHP内存管理之一个低概率Core的分析
一个同事forward过来一个, 公司某产品线遇到的一个低概率, 但长时间出现了几次的Core的bt信息, 找我帮忙分析下原因. bt栈如下(路径信息以*代替): #0 0x00000000004a75e5...
加速PHP的ECHO
你也许注意到过, 在PHP中使用ECHO输出大段字符串的时候, 执行时间会明显的长, 也就会有朋友认为PHP的ECHO性能很差. 我在之前的文章中, 已经解释过了原因, 也希望能纠正"...
深入理解PHP内存管理之谁动了我的内存
首先让我们看一个问题: 如下代码的输出, var_dump(memory_get_usage()); $a = "laruence"; var_dump(memory_get_usage()); unset($a); var_dump(memory_get_usage()); ...
Serialize/Unserialize破坏单例
我们经常采用如下方式定义单列: class Singleton { private static $instance = NULL; / 不容许直接调用构造函数 */ private function __construct() { } / 不容许深度...
可序列化单例模式的遗留问题答案
在上一篇文章Serialize/Unserialize破坏单例的最后, 我留下了一个问题, 为了让大家能思考, 我就单独再写一篇给出答案. 上一篇中, 我们说到, 为了实现一个支持序列化的单...
PHP Reflection Extension的一个bug
今天同事eddix告诉我发现一个PHP的warning, $php --re dummy Warning: Internal error: Cannot find extension function Dummy in global function table in Unknown on...
一些PHP Coding Tips[2011/04/02最后更新]
以下是一些PHP Coding Tips. 当然, 这些Tips并不一定仅仅局限于PHP. 大家有什么好的心得, 欢迎直接回复本文与更多的人分享.. 谢谢 本文长期更新, 请关注PHP Coding Tips...
深入理解PHP原理之Session Gc的一个小概率Notice
如果在ubuntu/Debian下, 采用apt安装的PHP, 那么在使用Session的时候, 就可能会有小概率遇到这个提示. PHP Notice: session_start(): ps_files_cleanup_dir: opendir(/v...