Archive for PHP

PHP之父评Facebook的HipHop:别当作银弹

据《纽约时报》网站报道,读写网记者与PHP的创造者Rasmus Lerdorf联系,询问他对Facebook刚刚开源的PHP优化项目HipHop有何看法。Lerdorf在邮件中说,这是一个很酷的项目,肯定会成为某些网站很好的选择。 Read the rest of this entry »

评论

Facebook性能大提升的秘密:HipHop

Facebook神秘的PHP项目HipHop for PHP终于揭开面纱。这个项目由一个PHP到C++的转换程序,一个重新实现的PHP运行库,和许多常用PHP扩展的重写版本构成,目的是旨在加速和优化PHP。

Facebook官方博客(无法直接访问)上项目负责人赵海平(北大1987届遗传与分子生物专业,普林斯顿计算机科学博士)的话说,HipHop项目对Facebook影响巨大。它目前已经支撑了Facebook 90%的Web流量。由于HipHop,Facebook Web服务器上的CPU使用平均减少了50%,从而大大减少了服务器的需求。为了让这一改进也惠及社区,他们决定将之开源,希望能够进一步帮助提高更多大型复杂PHP网站的可伸缩性。 Read the rest of this entry »

评论

phpMyAdmin超时设置

phpMyAdmin默认是30分钟超时的,对于做开发的人来说那个时间太短了。经常给退出的感觉不好玩。其实,只要在配置文件里加入

  1. $cfg['LoginCookieValidity'] = 18000;

这样就会有5小时的超时了。

评论

Jquery内存占用问题

最近使用PHP跟Jquery结合做一些小东西来研究,为以后做CRM之类的软件做一些资料准备。具体的产品方向是什么,暂时还没有下定论。只是先准备好一些软件以及架构上的东西先。

Jquery进行无刷更新页面的时候,我遇到内存会一直增加的问题。问过很多朋友都说没有这个问题。或许他们没有详细地测试过吧。一般要把页面挂在那里10分钟之后才会有感觉的。从当前页面跳转到其他页面会出现卡一下再转跳的情况。不少公司不重视这个问题的,如开发网,如果把一个页面挂在那里比较久的话,会出现再开其他页面会比较慢。

在GG搜了一把,主要是的原因是因为Javascript的内存泄露引起的。我也找到了一个解决的办法,拿来先顶着吧。对于复杂的JavaScript还是会出现内存泄露,或许那个页面的JavaScript需要我自己重新写过吧。
Read the rest of this entry »

评论 (2)

preg_match对字符长度有限制?

今天在写采集程序的时候,使用到了preg_match,但是有几个页面始终采集不下来。反复看了N遍的正则,没有发现有问题。于是开始怀疑preg_match是否对匹配的字符串有长度限制。但是官方的文档里面没有说明这一点。

于是开始测试:将要匹配的字串不断缩短,直到缩为原来1/5的时候可以正常匹配了,所以更加确定了。

到google里一搜,终于找到了解决方案:在php.ini中加入(随便放到哪里,我是直接放第一行的)

  1. pcre.backtrack_limit=-1

再次使用preg_match函数测试一下,大概1300多行上万个字符的字符串也能够匹配了。

评论

FreeBSD下以CGI模式运行PHP

一般情况下,很多人会选择把PHP以Apache的模块来运行。这样会导致静动态都由Apache的线程处理,并且PHP无法使用到Cache。Apache下跑PHP,应该是以CGI方式运行性能会更好。下面简单地记录,我使用FreeBSD安装以及配置以CGI模式运行PHP的经过。

Read the rest of this entry »

评论

Smarty使用Memcache进行缓存

默认的Smarty缓存是使用File进行缓存的。在高并发的时候,压力会在IO方面。为了避免在高并发的时候,IO占用高。我写了一个Smarty的插件,将缓存写入Memcache。曾经想过自己写一个模板的,感觉后期的维护比较麻烦,所以。。。。

Read the rest of this entry »

评论

PHP5按需动态加载类

  1. spl_autoload_extensions(".php");
  2. $classname = $mods . "Class";
  3. spl_autoload($classname);
  4. $chowclass = new $classname();

通过配置include的路径,之后通过上面的$classname规则动态将文件加载。我上面的规则说明,文件名为”类名+Class”,类名称为“类名+Class”。

SPL在Zend Framework也有应用的。

这只是一个关于SPL的小应用,SPL是PHP5比较好的东西。有空再慢慢地研究一下。

评论

Pear的Pager分页使用

PHP的分页类可以说,多如牛毛。Pager这个类真的很不错,自己可以定制的东西比较多。自带的功能也强大。

  1. $pager_options = array ('mode' => 'Sliding', 'perPage' => 20, 'delta' => 2, 'totalItems' => $total );
  2. $pager = Pager::factory ( $pager_options );
  3. $options = array ('autoSubmit' => true, 'optionText' => '%d' );
  4. echo $pager->getPageSelectBox($options); #下拉菜单分页导航
  5. echo $pager->links;#显示渐近式的分页菜单

我重点介绍Pager的下拉菜单使用方法,不需要自己去写一个下拉菜单的分页类。其他关于Pager的定义,只要各位GG一下。

评论 (2)

基于OpenCV的PHP图像人脸识别技术

今天无意中发现用OpenCV可以实现人脸识别。找个时间研究下用来识别验证码看可行不?呵呵。。
Read the rest of this entry »

评论 (3)