Press "Enter" to skip to content

上传进度支持(Upload progress in sessions)

文件上传进度反馈, 这个需求在当前是越来越普遍, 比如大附件邮件. 在PHP5.4以前, 我们可以通过APC提供的功能来实现. 或者使用PECL扩展uploadprogress来实现.
虽然说, 它们能很好的解决现在的问题, 但是也有很明显的不足:

  • 1. 他们都需要额外安装(我们并没有打算把APC加入PHP5.4)
  • 2. 它们都使用本地机制来存储这些信息, APC使用共享内存, 而uploadprogress使用文件系统(不考虑NFS), 这在多台前端机的时候会造成麻烦.

从PHP的角度来说, 最好的储存这些信息的地方应该是SESSION, 首先它是PHP原生支持的机制. 其次, 它可以被配置到存放到任何地方(支持多机共享).
正因为此, Arnaud Le Blanc提出了针对Session报告上传进度的RFC, 并且现在实现也已经包含在了PHP5.4的主干中.

Filed in PHP应用, 随笔
with 29 Comments

mysqlnd插件mysqlnd_ms的介绍

从PHP5.3开始, MySQL team专为PHP开发的MySQL连接库mysqlnd(MySQL native driver for PHP)终于和PHP一起发布了. mysqlnd的主要目的是为了解决长久以来mysql和php的license的问题. 它将作为PHP的源代码的一部分和PHP一起发布.
今天, 我要为大家介绍一个mysqlnd的插件:mysqlnd_ms, 这个插件是由mysqlnd的开发者Andrey Hristov,Ulf Wendeljohannes一起开发的, 目前发布在PECL: mysqlnd_ms

Filed in MySQL/PostgreSQL, PHP应用, 随笔
with 16 Comments

PHP正则之递归匹配

我记得早前有同事问, 正则是否能处理括号配对的正则匹配.
比如, 对于如下的待匹配的字符串:

   ((()))

就是一个括号配对的字符串. 而对于如下的待匹配字符串:

   ((()

则不是一个括号配对的字符串.
在以前, 这种情况, 正则无法处理, 最多只能处理固定层数的递归, 而无法处理无线递归的情况... 而在perl 5.6以后, 引入了一个新的特性: Recursive patterns, 使得这种需求可以被正确的处理.

Filed in PHP应用
with 14 Comments

我对PHP5.4的一个改进

插播个消息, 今天, 我终于获得了Zend的维护权限, Zend是PHP源代码中最为核心的部分, 也是最为敏感的地方, 对于这部分的权限控制的一直很严格. 但也是我加入PHP开发组以后, 一直想得到的权限. 🙂
好了, 言归正传, 今天对PHP5.4的Zend引擎做了一个改进, 改进了参数不兼容的报警信息. 具体的来说:

Filed in PHP应用, PHP源码分析
with 35 Comments

回答下在bugs.php上的一个问题

今天在bugs.php.net上, 有一个用QQ邮箱的用户发了一个问题(#55731).
他问, 为什么, 如下的代码, 会调用俩遍getter:
一开始, 我只是简单的回答了下, 和他在__get中再次获取$this->elmname有关系. 后来这个同学又要追问原因, 我只好用我那糟糕的英语给他解释.
可能用英语没太讲明白, 我现在用中文解释下吧.

Filed in PHP应用, PHP源码分析
with 17 Comments

关于做PHP扩展开发的一些资源

最近有个感觉, 越来越多的人开始从事PHP扩展开发的工作(越来越多的人来问问题了, 呵呵)
在这里先说声抱歉, 有的时候, 有的同学的邮件进了垃圾邮件没有办法及时回复.
为了方便大家, 我在这里罗列一些可能用到的资源.

Filed in 随笔
with 24 Comments