Dec
1
1、查找文件
a. 在指定目录下查找匹配的文件
find /path/ -name file*
b. 统计文件数
find /path/ -name file* |wc -l
2.增量备份文件
tar -g snapshot -czvf backup.tar.gz /path/
tar ztf backup.tar.gz 检查压缩包
tar xzvf backup.tar.gz 解压缩
3. 查看文件数
ls -l | wc -l
4.查看文件大小
du -sm /path/* (m 标识 MB)
5.ln的使用
ln -s /source/path /dist/path
说明:ln source dist 是产生一个连结(dist)到 source,至于使用硬连结或软链结则由参数决定。
删除ln 可以用unlink /dist/path
a. 在指定目录下查找匹配的文件
find /path/ -name file*
b. 统计文件数
find /path/ -name file* |wc -l
2.增量备份文件
tar -g snapshot -czvf backup.tar.gz /path/
tar ztf backup.tar.gz 检查压缩包
tar xzvf backup.tar.gz 解压缩
3. 查看文件数
ls -l | wc -l
4.查看文件大小
du -sm /path/* (m 标识 MB)
5.ln的使用
ln -s /source/path /dist/path
说明:ln source dist 是产生一个连结(dist)到 source,至于使用硬连结或软链结则由参数决定。
删除ln 可以用unlink /dist/path
Nov
27
zend 公司目前还没有开发兼容 window 7 64 位的 zend studio 5.5版本的软件,我从zend 论坛里头搜到一个帖子,有高人已经能搞定了Zend Studio 5.5 on Windows 7,我自己试用了好久,最终也算搞定了。为了节约时间,我将中文的理解记下:
1. 下载并安装最新的 JRE for Windows: http://java.com/en/download/manual.jsp
2. 下载并安装 WinRAR: http://rarlabs.com (be sure to install with Explorer shell extension).
3. 下载 Zend Studio 5.5.1
4. 点右键将ZendStudio-5_5_1.exe 解压缩在当前目录.
5. 进入解压后产生的目录 Windows\resource (主要这不是系统盘的windows/resources).
6. 然后将 "jre" 目录重命名为 "jre backup".
7. 然后复制 C:\Program Files (x86)\Java\jre6 目录到Windows/resource/下 重命名 "jre6" 为 "jre".
8. 回到上级Windows/目录下执行ZendStudio-5_5_1.exe ,安装.
9. 安装完成后,从windows/resource目录下将"jre backup" 目录复制到 Zend Studio 5.5 的安装目录下.
10. 将已安装目录下的 "jre" 重命名为 "jre another backup"
11. 然后将"jre backup" 重命名为 "jre"
12. 最后一步很关键,要设置ZDE.exe的运行兼容性,右键选择ZDE.exe的属性-->兼容性-->以兼容模式运行这个程序,选择 Windows Vista。
胜利!由于我一开始不知道兼容性怎么设置,总是碰到渲染的色彩问题,软件界面显示不正常,浪费了3个多小时的时间。
希望对后人有所帮助。我喜欢Zend Studio 5.5,讨厌后面集成到Eclips。
1. 下载并安装最新的 JRE for Windows: http://java.com/en/download/manual.jsp
2. 下载并安装 WinRAR: http://rarlabs.com (be sure to install with Explorer shell extension).
3. 下载 Zend Studio 5.5.1
4. 点右键将ZendStudio-5_5_1.exe 解压缩在当前目录.
5. 进入解压后产生的目录 Windows\resource (主要这不是系统盘的windows/resources).
6. 然后将 "jre" 目录重命名为 "jre backup".
7. 然后复制 C:\Program Files (x86)\Java\jre6 目录到Windows/resource/下 重命名 "jre6" 为 "jre".
8. 回到上级Windows/目录下执行ZendStudio-5_5_1.exe ,安装.
9. 安装完成后,从windows/resource目录下将"jre backup" 目录复制到 Zend Studio 5.5 的安装目录下.
10. 将已安装目录下的 "jre" 重命名为 "jre another backup"
11. 然后将"jre backup" 重命名为 "jre"
12. 最后一步很关键,要设置ZDE.exe的运行兼容性,右键选择ZDE.exe的属性-->兼容性-->以兼容模式运行这个程序,选择 Windows Vista。
胜利!由于我一开始不知道兼容性怎么设置,总是碰到渲染的色彩问题,软件界面显示不正常,浪费了3个多小时的时间。
希望对后人有所帮助。我喜欢Zend Studio 5.5,讨厌后面集成到Eclips。
Oct
30
最近做了一个新的开源项目,PHP 单点登录系统 Xppass,访问地址在http://xppass.googlecode.com
项目特点:
1、提供三种解决方案Cookie方案、Session方案和Ticket方案,根据需求任选其一。
2、可采用哈希分表设计,支持亿万级别用户数据量存储。
3、提供用户名和电子邮箱两种互补注册方式。
4、实现安全登录技术,采用密码MD5加密传输和hmac身份验证。
5、提供自动安装程序。
6、支持多语言版本。

官方网址:http://xppass.googlecode.com
项目特点:
1、提供三种解决方案Cookie方案、Session方案和Ticket方案,根据需求任选其一。
2、可采用哈希分表设计,支持亿万级别用户数据量存储。
3、提供用户名和电子邮箱两种互补注册方式。
4、实现安全登录技术,采用密码MD5加密传输和hmac身份验证。
5、提供自动安装程序。
6、支持多语言版本。

官方网址:http://xppass.googlecode.com
Sep
22
最近花了很多时间和心思开发的一个开源项目,KFL,--Kindly, Fast, Light的简称。
项目在GoogleCode上托管了。可以访问 http://kfl.googlecode.com
Demo 访问 http://www.kakapo.cn/GoogleCodeKFL/Admin/ 用户名 admin 密码 123456
KFL是一个轻快的、友好的、MVC模式的PHP开发框架,基于应用层程序框架来解决Webserver集群带来的系列开发问题。
KFL Admin是一个项目在线管理平台,使用KFL框架开发。可以作为学习使用KFL框架的demo。
主要特点:
* 统一配置,一键同步。
* 数据片和网页的分布式缓存。
* 分布式Memcached服务的监控管理。
* Session会话集群和在线用户统计。
* 错误日志管理和应用监控。
* 项目文件系统在线管理。
* 集成MySQL备份工具phpMyBackupPro。
* 集成SQLite管理工具SQLite Manager。
中文网站: http://kfl.googlecode.com
项目在GoogleCode上托管了。可以访问 http://kfl.googlecode.com
Demo 访问 http://www.kakapo.cn/GoogleCodeKFL/Admin/ 用户名 admin 密码 123456
KFL是一个轻快的、友好的、MVC模式的PHP开发框架,基于应用层程序框架来解决Webserver集群带来的系列开发问题。
KFL Admin是一个项目在线管理平台,使用KFL框架开发。可以作为学习使用KFL框架的demo。
主要特点:
* 统一配置,一键同步。
* 数据片和网页的分布式缓存。
* 分布式Memcached服务的监控管理。
* Session会话集群和在线用户统计。
* 错误日志管理和应用监控。
* 项目文件系统在线管理。
* 集成MySQL备份工具phpMyBackupPro。
* 集成SQLite管理工具SQLite Manager。
中文网站: http://kfl.googlecode.com
Jun
10
最近感觉以前使用的验证码生成函数太差,优化了一下代码,新的效果如下:

字体文件:
下载文件
源程序:
<?php
$width = "90";
$height = "30";
$charlen = "4";
$bgcolor = "#eeeeee";
$noise = true;
$noisenum = 20;
$border = false;
$bordercolor = "#cccccc";
$font = dirname(__FILE__). "/plugins/ENGR.TTF";
generate($width,$height,$charlen,$font,$bgcolor,$noise,$noisenum,$borer,$bordercolor);
function generate($width,$height,$len,$font,$bgcolor,$noise,$noisenum,$borer,$bordercolor){
//创建画布
$image = imagecreatetruecolor ( $width, $height );
$back = getcolor ($image, $bgcolor );
imageFilledRectangle ( $image, 0, 0, $width, $height, $back );
$size = ($width-6) / $len;
$size = ($size > $height)?$height:$size;
//为画布添加杂点
if ($noise == true){
for($i = 0; $i < $noisenum; $i++) {
$randColor = imageColorAllocate ( $image, rand ( 150, 255 ), rand ( 150, 255 ), rand ( 150, 255 ) );
$x1 = rand(0,$width);
$y1 = rand(0,$height);
$x2 = $x1+rand(-20,20);
$y2 = $y1+rand(-20,20);
imageline ( $image, $x1, $y1, $x2, $y2, $randColor );
}
}
//生成随机数字
$textall = "0123456789ABCDEFGHHJKLMNPQRSTWXY";
$code = '';
$colorArr = array("#006633","#990000","#006699","#663333");
$angleArr = array(10,-10,-20,20);
$textColor = getcolor($image,$colorArr[array_rand($colorArr)]);
//echo $textColor;
for($i = 0; $i < $len; $i ++) {
$tmptext = rand ( 0, 31 );
$randtext = $textall [$tmptext];
imagettftext ( $image,18, $angleArr[array_rand($angleArr)], 6+$size*$i, 24, $textColor, $font, $randtext );
$code .= $randtext;
}
$_SESSION ['validatecode'] = $code;
//加上边框
if ($border == true){
$bordercolor = getcolor ( $image, $bordercolor );
imageRectangle ( $image, 0, 0, $width - 1, $height - 1, $bordercolor );
}
//生成
header ( "Content-type: image/png" );
imagePng ( $image );
imagedestroy ( $image );
die;
}
function getcolor(&$image,$color) {
$color = eregi_replace ( "^#", "", $color );
$r = $color [0] . $color [1];
$r = hexdec ( $r );
$b = $color [2] . $color [3];
$b = hexdec ( $b );
$g = $color [4] . $color [5];
$g = hexdec ( $g );
$color = imagecolorallocate ( $image, $r, $b, $g );
return $color;
}
?>

字体文件:
下载文件 源程序:
<?php
$width = "90";
$height = "30";
$charlen = "4";
$bgcolor = "#eeeeee";
$noise = true;
$noisenum = 20;
$border = false;
$bordercolor = "#cccccc";
$font = dirname(__FILE__). "/plugins/ENGR.TTF";
generate($width,$height,$charlen,$font,$bgcolor,$noise,$noisenum,$borer,$bordercolor);
function generate($width,$height,$len,$font,$bgcolor,$noise,$noisenum,$borer,$bordercolor){
//创建画布
$image = imagecreatetruecolor ( $width, $height );
$back = getcolor ($image, $bgcolor );
imageFilledRectangle ( $image, 0, 0, $width, $height, $back );
$size = ($width-6) / $len;
$size = ($size > $height)?$height:$size;
//为画布添加杂点
if ($noise == true){
for($i = 0; $i < $noisenum; $i++) {
$randColor = imageColorAllocate ( $image, rand ( 150, 255 ), rand ( 150, 255 ), rand ( 150, 255 ) );
$x1 = rand(0,$width);
$y1 = rand(0,$height);
$x2 = $x1+rand(-20,20);
$y2 = $y1+rand(-20,20);
imageline ( $image, $x1, $y1, $x2, $y2, $randColor );
}
}
//生成随机数字
$textall = "0123456789ABCDEFGHHJKLMNPQRSTWXY";
$code = '';
$colorArr = array("#006633","#990000","#006699","#663333");
$angleArr = array(10,-10,-20,20);
$textColor = getcolor($image,$colorArr[array_rand($colorArr)]);
//echo $textColor;
for($i = 0; $i < $len; $i ++) {
$tmptext = rand ( 0, 31 );
$randtext = $textall [$tmptext];
imagettftext ( $image,18, $angleArr[array_rand($angleArr)], 6+$size*$i, 24, $textColor, $font, $randtext );
$code .= $randtext;
}
$_SESSION ['validatecode'] = $code;
//加上边框
if ($border == true){
$bordercolor = getcolor ( $image, $bordercolor );
imageRectangle ( $image, 0, 0, $width - 1, $height - 1, $bordercolor );
}
//生成
header ( "Content-type: image/png" );
imagePng ( $image );
imagedestroy ( $image );
die;
}
function getcolor(&$image,$color) {
$color = eregi_replace ( "^#", "", $color );
$r = $color [0] . $color [1];
$r = hexdec ( $r );
$b = $color [2] . $color [3];
$b = hexdec ( $b );
$g = $color [4] . $color [5];
$g = hexdec ( $g );
$color = imagecolorallocate ( $image, $r, $b, $g );
return $color;
}
?>






