Press "Enter" to skip to content

PHP数组的Hash冲突实例

上一篇文章, 我介绍了一个利用Hash冲突(碰撞)来对各种语言(包括,PHP, Java, Ruby等等)实施拒绝服务攻击的可能, 但是没有给出实例, 文章发出后, @Ferrari同学给出了一个另外一篇文章Supercolliding a PHP array, 文章中作者介绍了一种基于PHP的冲突实例, 以及带来的性能恶化对比. 我就借花献佛, 翻译给大家看看.
你知道不知道, 插入65536个经过构造的键值的元素到PHP数组, 会需要耗时30秒以上? 而一般的这个过程仅仅需要0.1秒..

Filed in PHP应用, 转载, 随笔
with 64 Comments

Yaf的性能对比测试

从Yaf诞生以来, 我就没把它与其他框架的性能对比测试放出来, 原因呢, 也很简单, 我懒, 没对比过(只是和原生的PHP做了简单的对比).
最近, 关注Yaf的人越来越多, 今天从访问来源发现了这个页面reddit.com, 继而发现了Eryx朋友, 做的一份性能对比测试, 我就借花谢佛, 转载了过来.
测试机器:

* Hardware
    CPU: Intel Core i5 750 (2.67GHz x4)
    RAM: 4GB
* Software
Debian 6.0.2 x86_64 (2.6.32-5-amd64)
apache 2.2.16
    mpm-prefork
    mod-php5
php 5.3.6
    php-apc 3.1.3p1

Filed in PHP应用, 转载, 随笔
with 14 Comments

上传进度支持(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扩展开发的一些资源

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

Filed in 随笔
with 24 Comments

分享个开心的事情

Hi, 从我做PHP开始到现在, 已经差不多有6年的时间了.
在6月份的时候, 我加入了PECL官方扩展开发小组.
也就在前天, 我终于加入了PHP开发小组. 这个也算是一个阶段性的被肯定吧..
做开源事业, 真的是很单纯, 难以抑制的喜悦, 想和大家分享.
回顾这6年, 兴趣是我最大的动力, thanks all.

Filed in 随笔
with 61 Comments

Plua进入Pecl

一个月以前, 我开发了一个php扩展( PLua – Lua for PHP ), 支持在PHP中调用Lua脚本
后续, 发现在pecl中有一个类似的扩展, lua
在和lua的作者johannes, Andreas讨论过以后, 我们一致认为, 应该只保留一个lua扩展.
考虑到Plua的设计更加符合PHP思维习惯, 功能上也比lua要更加丰富, 大家就一致决定把plua作为新的lua标准扩展, 当然plua也会借鉴lua现在的一些优点.
目前plua已经整合到pecl lua的svn中, 等和johannes确认以后, 就会发布release: Lua

Filed in PHP Extension, PHP应用, 随笔
with 10 Comments