您现在的位置:首页
--> 风雪之隅
异常与之对应的错误码(或者状态码), 到底各自有什么优点, 缺点, 我们应该怎么使用呢?
今天有人在微博上问了一个问题, 使用: string exec ( string $command [, array &$output [, int &$return_var ]] ) 调用一个程序, 程序退出-1, 但是PHP得到的为什么是255?
• PHP的历史
了解下PHP的历史, 有助于更加深刻的了解PHP发展到今天的轨迹, 下面的文字都是从>> PHP手册中转载过来的. PHP 在过去的几年里走过了漫长的道路。成长为处理 web 的最卓越的语言并非易事。如果对 PHP 如何发展到今天很感兴趣,那么请继续读下去吧。
今天在我的微博(Laruence)上发出一个问题: 我在面试的时候, 经常会问一个问题: \"如何设置一个30分钟过期的Session?\", 大家不要觉得看似简单, 这里面包含的知识多着呢, 特别适合考察基本功是否扎实, 谁来回答试试? 呵呵 为什么问这个问题呢? 1. 我在Twitter上看到了有人讨论这个
上周的时候Dmitry突然在5.4发布在即的时候, 引入了一个新的配置项: Added max_input_vars directive to prevent attacks based on hash collisions 这个预防的攻击, 就是\"通过调用Hash冲突实现各种语言的拒绝服务攻击漏洞\"(multiple implementations denial-of-service via hash algorithm collision).
上一篇文章, 我介绍了一个利用Hash冲突(碰撞)来对各种语言(包括,PHP, Java, Ruby等等)实施拒绝服务攻击的可能, 但是没有给出实例, 文章发出后, @Ferrari同学给出了一个另外一篇文章Supercolliding a PHP array, 文章中作者介绍了一种基于PHP的冲突实例, 以及带来的性能恶化对比. 我就借花献佛, 翻译给大家看看. 你知道不知道, 插入65536个经过构造的键值的元素到PHP数组, 会需要耗时30秒以上? 而一般的这个过程仅仅需要...
PHP是一种弱类型语言, 这样的特性, 必然要求有无缝透明的隐式类型转换, PHP内部使用zval来保存任意类型的数值, zval的结构如下(5.2为例): ....... 今天的话题, 我们只关注其中的俩个成员, lval和dval, 我们要意识到, long lval是随着编译器, OS的字长不同而不定长的, 它有可能是32bits或者64bits, 而double dval由IEEE 745规定, 是定长的, 一定是64bits. 请记住这一点, 造就了PHP的一些代码的\"非平台无...
以前, 我曾经介绍过如何通过PHP的Core文件获取信息:如何调试PHP的Core之获取基本信息, 对于调用参数这块, 当时介绍的获取方法比较复杂. 于是今天我为PHP 5.4的.gdbinit做了一个改进, 以后如果你遇到了PHP 5.4的core, 那么就可以简单的得到PHP 5.4发生Core时, 包括参数的函数调用栈的信息.
我在试验PHP5.4 RC1的时候, 发现了一个BUG, PHP 5.4 不能正确的转换GBK编码到UTF8编码, 不过现在我已经修复. 大家如果遇到这个问题, 请关注马上要发布的PHP5.4 RC2即可.. 谢谢
在PHP5.4中, 根据由Rasmus提交的RFC, 引入了一套新的信号处理机制, 目的是为了使得信号屏蔽机制可以应用到任何SAPI中, 并且提高在这个过程中的PHP性能. 新的机制, 叫做zend signal, 它的理念, 来自Yahoo的\"延迟信号处理\"(Yahoo signal deferring mechanism), 而后, facebook把这套理念加入了PHP中, 为了提升PHP+Apache 1.X下PHP调用ap_block/ap_unblock的性能. 在详细介绍之前, 我想还是先介绍下引入这个新...
PHP的内存管理, 分为俩大部分, 第一部分是PHP自身的内存管理, 这部分主要的内容就是引用计数, 写时复制, 等等面向应用的层面的管理. 而第二部分就是今天我要介绍的, zend_alloc中描写的关于PHP自身的内存管理, 包括它是如何管理可用内存, 如何分配内存等. 另外, 为什么要写这个呢, 因为之前并没有任何资料来介绍PHP内存管理中使用的策略, 数据结构, 或者算法. 而在我们平时开发扩展, 修复PHP的bug的时候, 却对这一部分...
PHP的语法分析系统, 是一个历史悠久的系统, 在这个蛮长的的历史中, 不停的修修补补, 或多或少的会造成一些特定的特性. 而如果要重写, 继耗时, 又耗力, 并且很难做到和现在的完全兼容, 所以我想, 要完全重写, 那也只能是PHP6了(替开发组宣布一下, PHP6目前已经停止开发, 也暂时不会有这种提法)
从Yaf诞生以来, 我就没把它与其他框架的性能对比测试放出来, 原因呢, 也很简单, 我懒, 没对比过(只是和原生的PHP做了简单的对比). 最近, 关注Yaf的人越来越多, 今天从访问来源发现了这个页面reddit.com, 继而发现了Eryx朋友, 做的一份性能对比测试, 我就借花谢佛, 转载了过来.
PHP 5.4 由Arnaud 引入了一个对三元式的优化方案. 我们都知道PHP用写时复制来对变量复制做性能优化, 而在以前的三元式中, 却每次都会复制, 这在操作数是大数组的情况下, 会造成性能问题。
我记得早前有同事问, 正则是否能处理括号配对的正则匹配. 比如, 对于如下的待匹配的字符串: ((())) 就是一个括号配对的字符串. 而对于如下的待匹配字符串: ((() 则不是一个括号配对的字符串. 在以前, 这种情况, 正则无法处理, 最多只能处理固定层数的递归, 而无法处理无线递归的情况... 而在perl 5.6以后, 引入了一个新的特性: Recursive patterns, 使得这种需求可以被正确的处理.
从PHP5.3开始, MySQL team专为PHP开发的MySQL连接库mysqlnd(MySQL native driver for PHP)终于和PHP一起发布了. mysqlnd的主要目的是为了解决长久以来mysql和php的license的问题. 它将作为PHP的源代码的一部分和PHP一起发布. 今天, 我要为大家介绍一个mysqlnd的插件:mysqlnd_ms, 这个插件是由mysqlnd的开发者和johannes一起开发的, 目前发布在PECL: mysqlnd_ms
我们知道, 用PHP的json_encode来处理中文的时候, 中文都会被编码, 编程不可读的, 类似\"\\u***\"的格式. 不仅不易读, 还会扩大传输的数据量.
文件上传进度反馈, 这个需求在当前是越来越普遍, 比如大附件邮件. 在PHP5.4以前, 我们可以通过APC提供的功能来实现. 或者使用PECL扩展uploadprogress来实现. 虽然说, 它们能很好的解决现在的问题, 但是也有很明显的不足: 1. 他们都需要额外安装(我们并没有打算把APC加入PHP5.4) 2. 它们都使用本地机制来存储这些信息, APC使用共享内存, 而uploadprogress使用文件系统(不考虑NFS), 这在多台前端机的时候会造成麻烦. ...
首先, 这个标题我不太清楚怎么翻译才能表达确切的意思, 直译不太妥当. 在PHP5.4中, 有一个新的改进: - Added array dereferencing support. (Felipe)
Json是Ajax应用中最为通用的数据传输格式(协议), 主流的编程语言都带有对Json的支持, 在PHP中, 有json_encode/json_decode, 可以很方便的构造Json数据格式.
近3天十大热文
- [69] Twitter/微博客的学习摘要
- [67] IOS安全–浅谈关于IOS加固的几种方法
- [65] 如何拿下简短的域名
- [65] android 开发入门
- [63] find命令的一点注意事项
- [62] Go Reflect 性能
- [61] 流程管理与用户研究
- [60] Oracle MTS模式下 进程地址与会话信
- [59] 图书馆的世界纪录
- [57] 读书笔记-壹百度:百度十年千倍的29条法则
赞助商广告