分类:PHP

《Ruby太慢了》PHP实现,两种算法

http://www.oschina.com 之前 有一篇文章 http://www.oschina.net/translate/ruby-is-too-slow-for-programming-competitions 一下子掀起了各语言实现这个算法的狂潮 转帖呢,首先看看题目要求:给定数字X和Y,返回其中包括多少个数字,数字本身是回文数,同时也是另一个回文数的平方。 这里有一个PHP 实现,是仿照的 JAVA 算法:http://www.oschina.net/code/snippet_1023425_20741 实际上这样没有完全利用PHP本身的特点,运算速度颇慢,我本地大概27s 我以这个算法为基础,优化如下: <?php set_time_limit(0); $t1 = microtime(true); $min = 1; $max = 100000000000000; $i = (int) sqrt($min); $end…

Continue reading

PHP5.4

总结一下有点意思的 PHP5.4 更新: <?= is now always available regardless of the short_tags setting <?= 不管php.ini里面 short_tags 怎么设置都将一直能用 Added multibyte support by default 终于直接支持多字节了,应该是不需要再用mbstring了吧 Added support for Traits 新的语法结构,trait,用法看这里:https://wiki.php.net/rfc/traits…

Continue reading

生成 main/config.w32.h

准备好PHP源代码,假设解压到 D:\php-src 下载2个必要的包 http://www.php.net/extra/bindlib_w32.zip http://www.php.net/extra/win32build.zip 把这2个包的内容放一起,例如解压缩到 D:\win32build 请使用 Visual Studio Tools 下的 Visual Studio 命令提示 操作 进入D:\php-src\ 执行buildconf.bat 建立一个临时环境变量,执行set path=%path%;D:\win32build\bin 执行 cscript /nologo configure.js –with-php-build=”../win32build” –without-libxml  –disable-odbc 如果想要No Thread…

Continue reading

Migrating from PHP 5.2.x to PHP 5.3.x

PHP5.3已经正式发布了…打算抽点时间把 Migrating from PHP 5.2.x to PHP 5.3.x(从PHP5.2.x迁移到PHP5.3.x)翻译成中文,慢慢写咯…因个人能力限制…难免有错误,欢迎指正 未向下兼容的变化 大部分现有的PHP5代码是不需要改变的,不过请注意下面这些变化: 新的内部参数解析 API 已经被应用在 PHP 5.3.x 绑定的所有扩展上。这个 API 使得函数在传入不兼容的参数时返回 NULL。这条规则也有一些例外,例如函数 get_class(),在出错的时候将继续返回 FALSE。 clearstatcache() 默认不再清除真实路径缓存(realpath cache)。(PS:函数增加了两个有关的参数,具体请看手册) realpath() 现在已经是与平台完全无关的了。 call_user_func() 这一系的函数现在可以使用…

Continue reading

今天遇到有史以来最囧的bug

今天开新服,结果在开服前20分钟测出一个巨囧的bug…经过一个下午调试终于知道原因并解决了…其实也不用多说什么,说一下解决方法就知道为什么囧了… 某函数xxx需要参数$a(数组) 形如:xxx($a) 程序形如: $a = array(); $a[] = 1; $a[] = 2; echo xxx($a); 结果错误 = = 解决方法如下: $a = array(); $a[] = 1; $a[] = 2;…

Continue reading

强大的动网…

今天看了动网PHP版2.0++的宣传词,实在受不了了…好一堆什么首创什么第一,只一句话:做人不能WC到这种地步。 PS:小装了一下 2.0++…恩,不支持FireFox,安装成功第一次访问直接 syntax error,很好,很强大 再PS:原来是必须要打开short_tag_open(顺便说下DZ也有这个问题)…看来我是无福消受了…

Continue reading

Blitz Templates 最快的 PHP 模板引擎

这个最快的模板引擎可不像网上那些自我吹嘘的模板引擎那样,最起码一个很大的不同是这个模板引擎是一个 PHP 扩展,从这一点就可以看出它比用 PHP 写出来的模板引擎要快不是难以理解的。 官方网址:http://alexeyrybak.com/blitz/blitz_en.html 官方提供的测试数据: 从这个数据看比 php include都要快,咳咳…. 当然也可以看出来 php include其实也是很快的,至少比一般的模板引擎快很多,特别是 ZPS(Zend Performance Suite) on 的情况下,虽然还是比Blits略慢,可见装一个PHP内存cache扩展加速是很有必要的,我个人推荐xcache,这个扩展以后再说了^^ 在ZPS off的情况下即使 include 速度下降的也令人吃惊…跟不用说smarty这种模板引擎了…这种状态Blitz下比传统模板引擎至少快3倍,即使是和php include比也要快1倍多,那个仅次于Blitz的php_templates也是一个PHP扩展模板引擎,可见扩展形式的模板引擎在没有加速扩展的时候 是最好的选择,不过话说回来,既然这个模板引擎扩展你都装了…那么再装一个xcache似乎也不是什么难事吧= =b Blitz 引擎的语法架构和 phplib…

Continue reading

一些经典字符串哈希函数算法的 PHP 实现

恩…或许还有朋友不清楚字符串的哈希函数到底有什么用,这个用处呢,就是将字符串转换成数字,同时让所得数字尽量平均的分布在容器中,换句话说就是让字符串得到相同数字这种情况尽可能少的出现。当然咯…容器太小,内容太多那么再好的算法也没法避免出现冲突 = =b 从网上找到的哈希函数基本上都是C算法的…最后只好从C and Java 算法中整理 and 测试了这些 PHP中的实现方法。有几个经典的算法在 PHP 下会有问题,字符串一长就会全部取 0,那些我就没有再列出来了。代码就看下面咯:

Continue reading

All in One SEO 中文环境下的一个 Bug

All in One SEO 是一个进行 Wordprss SEO 优化的插件,它能够重写 Wordprss 页面的 title 以利于搜索引擎收录,但是这个插件有一个 bug 当你使用的 Tag 是中文时,title中显示的第一个字符会是乱码,检查后发现是插件会试图将英文单词第一个字符转成大写,本身中文就是多字节字符,substr再 strtoupper,了解 php 中文处理的人就应该知道肯定会出问题了… 为了解决这个问题我将插件中的 capitalize 方法(function capitalize)修改如下: function capitalize($s) { $s =…

Continue reading