封装Uchome分页方法

May 8, 2009 – 11:37 pm
    昨天晚上没事可干,躺在床上抱着小黑看uchome的源代码,边调试边看,发现uchome的分页方法很巧妙,正好手痒,就把这个方法改装成一个类,改装完毕后,再完善一下,使之可以支持symfony。记录在这里了。

开始使用SVN管理我的开发库了… …

March 20, 2009 – 7:51 pm
可能是以前长期深受高中某化学老师教育影响,一直以来,不论做什么事情,都养成了在完事后整理总结的习惯。尤其是程序写多了以后,保留的开发库代码越来越多,例如分页类,XML类,图片处理类,数据库操作类,字符串处理类等等一切东西,再加上现在几乎每天都能从phpclass上淘到宝贝,所以积累的代码更是越来越多了。这些东西存放在哪里呢?家里的准系统上有老一批代码,公司的电脑上有新一批,thinkpad上是杂七杂八,这管理起来太费劲了,更不用说是到了想用的时候。怎么办呢?哈哈,想到了subversion,现在开始整理代码到我的SVN上,这样无论在哪台计算机上,只要有接入互联网,就可以找到我的开发库代码,好主意,现在开始整理提交工作了... ...

CentOS下编译安装PHP Curl扩展

November 23, 2008 – 8:00 pm
上次编译安装PHP时没有选择安装curl扩展,下面记录一下安装PHP curl扩展的方法。 我的PHP安装目录:/usr/local/php5/; 我的PHP源代码存放位置:/home/Downloads/php-5.2.6/; Apache的安装目录:/usr/local/apache2/ 。 进入php源代码的curl扩展目录:cd /home/Downloads/php-5.2.6/ext/curl 调用phpize程序生成编译配置文件,/usr/local/php5/bin/phpize 开始编译扩展库,./configure –with-php-config=/usr/local/php5/bin/php-config 一般会出现错误如下: checking for cURL in default path... not found configure: error: Please reinstall the libcurl distribution - easy.h should be in /include/curl/ 解决方法:yum -y install curl-devel 然后再次输入:./configure –with-php-config=/usr/local/php5/bin/php-config make成功执行后,生成的扩展库文件在当前目录的 modules 子目录下,如 /home/Downloads/php-5.2.6/ext/curl/modules/curl.so 将编译好的扩展库文件复制到apache2 modules目录下 cp /home/Downloads/php-5.2.6/ext/curl/modules/curl.so /usr/local/apache2/modules 在php.ini文件中找到设置扩展目录的位置,然后将扩展路径设置到apache2 modules目录下 extension_dir = “/usr/local/apache2/modules/” 在php.ini的设置扩展库位置,设置要添加的扩展库。 extension=curl.so 以此类推,以后如果还要添加别的扩展库的话,则只需先将php扩展库编译好,然后copy到apache2 modules目录下, 然后再在这个位置,另取一行将编译后的扩展库文件名加上即可 最后重启apache,查看phpinfo信息,即可看到刚才添加进去的curl扩展库。

CentOS5.2编译安装Apache 2.2.10,MySQL 5.0.67,PHP-5.2.6(支持GD),ZendOptimizer3.3.0

November 23, 2008 – 2:05 am
1.安装Apache 2.2.10 虽然选择了无包安装CentOS,但是由于包依赖关系,CentOS还是会自动安装Apache,所以需要首先卸载掉Apache,依次点击Applications->Add/Remove Software->把万维网服务器前面的勾去掉即可。 开始编译安装Apache 下载httpd-2.2.10 解压 tar zxvf httpd-2.2.10.tar.gz 进入目录,开始编译 ./configure --sysconfdir=/etc --enable-ssl --enable-modules --enable rewrite 一般apache还需要支持url改写,所以编译时加上后面的部分; 正常情况下,如果选择了无包安装CentOS,会出现下面的错误: checking whether to enable mod_ssl... checking dependencies checking for SSL/TLS toolkit base... none checking for OpenSSL version... checking openssl/opensslv.h usability... no checking openssl/opensslv.h presence... no checking for openssl/opensslv.h... no checking openssl/ssl.h usability... no checking openssl/ssl.h presence... no checking for openssl/ssl.h... no no OpenSSL headers found checking for SSL-C version... checking sslc.h usability... no checking sslc.h presence... no checking for sslc.h... no no SSL-C headers found configure: error: ...No recognized SSL/TLS toolkit detected 解决办法,安装 openssl yum -y install openssl-devel 下载安装和更新的列表信息 Running Transaction Updating  : e2fsprogs-libs               ####################### [ 1/15] Updating  : krb5-libs                    ####################### [ 2/15] Installing: e2fsprogs-devel              ####################### [ 3/15] Installing: libsepol-devel               ####################### [ 4/15] Installing: libselinux-devel             ####################### [ 5/15] Installing: keyutils-libs-devel          ####################### [ 6/15] Installing: krb5-devel                   ####################### [ 7/15] Installing: zlib-devel                   ####################### [ 8/15] Installing: openssl-devel                ####################### [ 9/15] Updating  : krb5-workstation             ####################### [10/15] Updating  : e2fsprogs                    ####################### [11/15] Cleanup   : e2fsprogs-libs               ####################### [12/15] Cleanup   : krb5-workstation             ####################### [13/15] Cleanup   : e2fsprogs                    ####################### [14/15] Cleanup   : krb5-libs                    ####################### [15/15] Installed: openssl-devel.i386 0:0.9.8b-8.3.el5_0.2 Dependency Installed: e2fsprogs-devel.i386 0:1.39-10.el5_1.1 keyutils-libs-devel.i386 0:1.2-1.el5 krb5-devel.i386 0:1.6.1-17.el5_1.1 libselinux-devel.i386 0:1.33.4-4.el5 libsepol-devel.i386 0:1.15.2-1.el5 zlib-devel.i386 ...

我的小黑,thinkpad X61 7675H4C

November 6, 2008 – 3:39 am
    老笔记本电脑用了5年整了(2003年7月份入手的联想昭阳E420),说句实话,它的服役期有点长了,尽管它现在是"老当益壮",但是考虑到便携和性能因素,再买个新的笔记本是必须的了。 买个什么样的呢?便携,处理器要强劲,而且牌子要响当当的!这么看来,只有thinkpad系列 ,虽然IBM thinkpad被联想收购了,变成了lenovo thinkpad,但是考虑到如果选择thinkpad家族中的高端机型,是可以继承thinkpad家族优秀血统的,如此这般筛选,只有选择thinkpad X系列的机型了。 选择机型花费很长时间,选择在哪里购买更是花费了不少时间,经过多方考察,多方咨询,最终选择在thinkpad一级代理商处入手了thinkpad X61 7675H4C。 购买后感觉总体还是很不错的,不过从这台机器上看不到thinkpad坚固耐用的品质了,对比thinkpad T系列,X系列更像是一个娇贵的小姐,需要你小心呵护。例如,屏幕连接线完全裸露在后面,如果有外界的尖锐物品触碰到,恐怕就会发生显示器信号和主机不连通事件;屏幕盖上的无线仅仅用了一块皮革覆盖,让我时刻害怕有尖锐之物戳穿它;底部的工程塑料柔韧性很好,有的时候按压力气一大,会陷下去。不过好在我做任何事情都很仔细,这些事情一般不会发生。thinkpad X61 7675H4C的散热和静音我是非常满意的,或许是因为我感受了很久老笔记本的高热量和噪音,哈哈!

非常感谢网友Jerry.Li帮忙整理Symfony Askeet 24教材

October 21, 2008 – 3:02 am
      最近由于工作繁忙,工作方向出现变化,我的大部分时间都放在应用程序开发上,所以很久没有碰Symfony了。     今天早上看到网友Jerry.Li在blog上给我的留言,感觉很激动,有很多朋友都在关注symfony,关注PHP,这一切都让我忽然有了更高的热情,更强的动力,技术工程师永远不要有懈怠的思想。     Jerry.Li整理的Askeet 24后还附录了symfony单元测试章节,说实话我很愧疚,由于一时偷懒,这部分没有经过校译,可能会有很多错误。我会尽快找时间进行校译的。

我的准系统梦想终于实现… …浩鑫K45

August 27, 2008 – 10:38 pm
    最近购买了浩鑫K45,呵呵,也算是圆了多年的准系统梦想。现在拿出几张照片晾晾了... ...     选择的配置还算可以,浩鑫K45采用了Intel945芯片组,由于我对3D运算没有特殊的要求,所以集成的显卡可以满足我的需要了。处理器采用了Intel Core 2 Duo E7200,这个处理器绝对够强劲,不信你可以去查一下^__^;内存使用了单根金士顿2GB DDR2 800,这里稍微有点遗憾,K45的主板只支持内存外频到667,所以我只能拿800当667用了;硬盘买了一块三星SATA 接口500GB,然后加上手头闲置的那块西捷IDE接口的160GB硬盘,两块硬盘都装到了浩鑫K45里,这下真是做到了空间见缝插针。所有的配件都挤在一起,为了散热,后面还加装了一个风扇,经过使用观察,机箱里的温度还在可接受范围内。当然了,这么好的东西,还要加上一个漫步者低音炮。最后接上三星940BW十九寸宽屏液晶显示器,还有我的多彩垂直鼠标和罗技黑珍珠超薄键盘,多年的存货终于都有用武之地了。  这里是全景图 ^__^  这里是和随机光盘的合影,根据普通光盘的大小,可以看出这个机箱多么小啊!     最后补充,浩鑫K45的前面板可以换图案,这一点很类似我的老手机Nokia 3200,我这些天正在物色一款好的图片,到时候换到K45前面板上,照片嘛,到时候再贴了... ...

[原创]由Web Service展开的联想… …

June 17, 2008 – 3:41 am
    最近互联网流行web service,这个东西像广告一样铺天盖地砸到我们头上,就这样,一群茫然的程序员开始了web service之旅... ...     拜读了OReilly和Apress的大作(基本看完了主要内容),紧跟着又实验了yahoo!和google的搜索web service,忽然有种感觉,web service很类似Ajax,都是有点新瓶装旧酒的味道。     什么是web service呢?让我们不用计算机的术语来解释,几个工厂生产奇形怪状的管子,有的是漏斗形状的(yahoo.com),有的是超级粗的(google.com),有的是超级细的(amazon.com),但是唯一统一的是生产出来的管子的两端,就是两端的接口口径都是统一的(XML语言),所有这些奇形怪状的管子都可以严丝合缝的组合在一起,水(数据)就可以在里面通畅得流动,如果哪家工厂的管子两端接口的口径不按照标准统一生产,那就会有两种结果,一种是水漏得厉害(数据无法正常传送),一种是谁的管子都不和它连接(孤立的网站,估计结果是关门)。这就是我理解的web service。     那么为什么说web service类似Ajax,都有点新瓶装旧酒的意思呢?我认为,这种统一标准,便于网站数据流通的方法实际上已经被许多网站开发人员在不知不觉中使用了。尤其对于使用不同开发语言的项目来说,一个PHP程序模块和另一个JAVA程序模块保持通讯,在项目内部或者互相提供一个ID(接受的程序自己去查询),或者提供一个数组,当然也会有人使用XML标记语言。呵呵,现在web service被提出来了,等于给这些程序员出于本能使用的技术赋予了一个名字,那就是——Web Service。同样的道理,对外提供接口让用户基于你的网站开发小程序也是这个道理。大家的程序语言不必统一,只要互相能提供相同的XML文件即可。     今天看得有点多,写下一点感想,不对的地方敬请赐教,谢谢!

[Original]An Identifying Code Pic Class using PHP GD Lib.

May 14, 2008 – 7:04 pm
Yesterday I took one hour to study PHP GD lib.I read this book's chapter which is about PHP Advanced Pic Technology.The picture which can descripe this book is below. After reading it,I felt it is easy to operate pic using PHP GD.When I home,I suddenly wanted to write a PHP Class which includes Identifying Code Pic's function.Now I published this class.Thank you for pointing out my issue and leaving your comment. /* *@date 20080514 *@author hluan *@package Identifying.Code.Pic.Class *@attention Before using this class,you should use session_start(); */ //session_start(); class icode { function __construct(){ header('Content-Type:image/png'); } function __destruct(){ imagedestroy($png); } /************************************************** *@len The length of the identifying code. *@type 1:only number identifying code; * 2:only letter identifying code; * 0:number and letter identifying code. *@attention We store identifying code in $_SESSION['icode']. **************************************************/ function getcode($len,$type){ switch ($type){ case 1; $str = "1234567890"; break; case 2; $str = "abcdefghijklmnopqrstuvwxyz"; break; case 0; $str = "1234567890abcdefghijklmnopqrstuvwxyz"; break; } $result = ""; $length = strlen($str) - 1; $num = 0; for ($i=0;$i<$len;$i++){ $num = rand(0,$length); $a = $str[$num]; $result = $result.$a; } /*Before using it,you should use session_start()*/ $_SESSION['icode'] = $result;//Store in session. //echo "session:".$_SESSION['icode']; //die(); $png = imagecreate(60,30); $white = imagecolorallocate($png,255,255,255);//background $red = imagecolorallocate($png,255,0,0); $blue ...

[原创]PHP GD图片验证码类。

May 14, 2008 – 6:30 pm
昨天拿一个小时研究了一下PHP GD类库的使用方法,实际就是看了这本书 中的PHP图像技术一章节,感觉PHP利用GD类库操作图片的确很方便。晚上回家忽然萌生了写一个PHP图片验证码类的想法。所以就有了下面的代码,呵呵,现在贴出来,请大家多提宝贵意见,谢谢!