使用Pear::Pager类的一个问题

今天把公司的服务器从php4升级到php5,问题来了.最严重的是使用Pear::Pager类,报错如下:
Fatal error: Cannot re-assign $this in D:xampphtdocstmptest.php on line 5

看了下Pager类的构造,有如下代码:
$this = ……………..;

看来从php5开始不再支持这种对自身重新实例化的写法了,只好重写了Pager类草草收场

[@more@]

升级到php5的日记 一

终于要从php4升级到php5了,是的,俺费尽了口舌,说服了boss使用php5和mysqli开发新项目.

首先俺细细的阅读了官方站点上介绍php5的有关章节,以及网络上的一些关于php5的文章.基本开发环境定为linux+apache2+php5+mysql4.1,很经典的搭配.为了提高开发效率,俺决定继续使用pear的类库和prado,因此现状是php4,php5的代码将并存.第一周俺们就遇到了麻烦:

1.mysqli和zend1的兼容性
php.ini里面有一个选项,可以开启对zend1的兼容性,如果你在打开这个开关的同时还想使用mysqli的话,很快就会失望.它会无情的告诉你:
unable clone a uncloneable object…………………

2.使用prado和php5的一些问题
prado程序包prado.php的有段代码如下:
set_error_handler( …….. );
php5的配置默认是不提示E_STRICT级别的错误,要命的是,这行代码对任何错误都会die(………………..),pear的代码完全没办法工作,只好咔嚓之

大文件上传且带进度条的php解决方案

以下是用Pear::HTML_Progress实现大文件上传的例子

  • HTTP 1 – Upload files with your web browser to a web server. Single page (using frames).
  • HTTP 2 – Upload files with your web browser to a web server. Progress meter in a popup.
  • HTTP 3 – Mixed field Upload. Single page (using frames).
  • HTTP 4 – Upload files with your web browser to a web server and logs operations into a file.
  • FTP – Upload file on a remote ftp server that may be different than webserver.

    更多的HTML_Progress教程看这里:
    http://pear.laurent-laville.org/HTML_Progress/examples/

  • [@more@]

    让editplus的Function list显示php5的函数

    如果你开始使用php5了,而且正好又是editplus的忠实用户,一定会为editplus的function列表无法正确显示而烦恼.这时候,我们不能怨社会,php5新增的public,private,proctectd,static关键字才是罪恶的根源,function不再是function,而是public function….

    当然,这一切不会难倒我们,editplus具有很好的可定制性,以下步骤可以轻松解决这个问题:

    • 打开tools->perferences->Files->Setting&syntax
    • 选择File types->PHP
    • 修改Function pattern
      ^[ t]*function[ t].*([^;]*$ 变成 ^[ t]*(function |public |protected |private |static).*([^;]*$
    • 点ok保存设置

    好了,按下ctrl+F11,看看函数窗口,有没有显示出所有的函数呢?

    [@more@]

    中文pear

    php的pear类库真是包罗万象,我时常想.

    用过之后,我发觉自己是越来越懒惰了,没心思去写一些模块和function之类的.为什么不呀,人家pear不有现成的么??

    为了强化记忆,与时俱进,加入中文pear部分,收罗中文的关于pear的文章.