首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

PEAR:常用模块(3)

PEAR:常用模块(3)

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();?>
返回列表