4.File/Passwd操纵password格式的文件,类似如标准的unix password,apache的.htppass,cvs的pserverpassword文件。从现有版本的代码来看,它还不能真正地用来维护这些passwd文件(比如并不支持shadow)。不过你可以用来创建类似的密码文件,当然,安全性不会很高。
使用方法:
- File_Passwd($file,$lock=0)----------创建对象,$file是你要操作的passwd文件,$lock指定是否要用flock对文件上锁。
- addUser($user,$pass,$cvsuser)----------增加一个用户,$user,$pass分别是用户名和密码,$cvsuser是cvs用户的id
- modUser($user,$pass,$cvsuser)----------修改$user的密码为$pass,$cvsuser是cvs用户的id
- delUser($user)----------删除指定的用户$user
- verifyPassword($user,$pass)----------检验用户密码
- close()----------保存刚才的修改到password文件,关闭password文件,对文件解锁。
5.File/SearchReplace在文件中查找和替换字符串
使用方法: File_SearchReplace($find, $replace, $files,$directories = '', $include_subdir = 1, $ignore_lines =array())
生成并设置对象
$find
要查找的字符串,可以是字符串或规则表达式
$replace
要替换成的字符串,可以是字符串或规则表达式
$files
指定在哪些文件中进行替换操作,数组或者是以","分割的一个字符串
$directories
指定在那个目录中操作,可选,数组或者是以","分割的一个字符串
$include_subdir
如果是在目录中操作,指定是否在子目录中递归执行上述操作,可以是数值1或0。
$ignore_lines
指定要忽略的文件行,这是一个数组,任何以这个数组中任意一个字符串开始的文件行,都会忽略。
getNumOccurences()
返回已经执行了查找替换的次数
getLastError()
返回上一次的错误信息
setFind($find)
设置要查找的字符串
setReplace($replace)
设置要替换的字符串
setFiles($files)
设置要执行替换操作的文件
setDirectories($directories)
设置要替换操作的目录
setIncludeSubdir($include_subdir)
设置是否在子目录中也执行查找替换
setIgnoreLines($ignore_lines)
设置要忽略的行,只能在使用"normal"搜索函数的时候使用
setSearchFunction($search_function)
设置要使用的搜索函数,可以是下列参数:
- normal缺省值,使用file函数读入文件内容,然后使用str_replace逐行的进行替换。
- quick 使用str_replace直接对整个文件进行替换
- preg使用preg_replace()来进行替换,你可以使用符合这个函数要求的规则表达式
- ereg使用ereg_replace()来进行替换,你可以使用符合这个函数要求的规则表达式
doSearch()
执行查找替换操作
<?php require_once "File/SearchReplace.php"; require_once "File/Find"; //递归搜索当前目录 $find = new File_Find; $all_php_files = $find->search("*php","."); if ( PEAR::isError( $all_php_files ) ){ die "错误:" . $php_files->getMessage() ."\n" ; } if ( !count($all_php_file) ){ die "NO php source files found!\n"; } //将<?的php标志修正成<?php,以符合pear标准 $replace = new File_SearchReplace('<? ','<?php ',$all_php_files); $replace->doSearch(); if ( $replace->getLastError() ) { die "发生错误:" . $replace->getLastError() ; } else { echo "共成功替换了 " . $replace->getNumOccurences() . " 处。\n"; }?>6.HTML/Form这个模块可以让你快速地生成一个提交的窗体,而无需重新去编写html代码
使用方法: Form::HTML_Form($action, $method = 'GET', $name= '', $target = '')
这个类的构造函数带有一些参数,这些参数和通常要编写html代码中的form参数是基本一致的,$action是在form中要提交到的URL,$name可以指定form的名字,$target指定是否要新开窗口等等。
下面的addXXX系列方法,用于在这个form中添加相应的控件,控件的属性和html中的也相一致。addText($name, $title, $default, $size = HTML_FORM_TEXT_SIZE)addCheckbox($name, $title, $default)addTextarea($name, $title, $default,$width =HTML_FORM_TEXTAREA_WT,$height = HTML_FORM_TEXTAREA_HT)addPassword($name, $title, $default, $size =HTML_FORM_PASSWD_SIZE)addSubmit($name = "submit", $title = "Submit Changes")addReset($title = "Discard Changes")addSelect($name, $title, $entries, $default = '', $size = 1,$blank= '', $multiple = false, $attribs = '')addRadio($name, $title, $value, $default)addImage($name, $src)addHidden($name, $value)Display()
显示这个窗体
<?php require_once "HTML/Form.php"; //创建并显示登录窗体 $myform = new HTML_Form("./login.php"); $myform->addText('username','用户名',''); $myform->addPasswd('passwd','登录密码',20); $myform->addHidden('retry','1'); $myform->addSumit('login','登录'); $myform->Display();?> |