用PHP即时添加,删除FTP帐号和更改FTP密码的函数

王朝php·作者佚名  2006-01-08
宽屏版  字体: |||超大  

网上不知道有没有Serv-U FTP的接口,这类的资料,由于不知道Serv-U的加密方式,所以没有使用加密密码的方式,如果有人知道算法,麻烦你告诉我一声

$filepath是Serv-U的安装地址,$FTPpath是你要开通FTP的文件夹地址

主要方式是把ServUDaemon.ini文件读如数组,然后操作数组元素达到修改配置文件的目的.初学PHP,还不会写Class,大虾多多指点

<?php

///////////////////////////////////////////////////////////////////////////////////

// Copyright (C) 2003 醉雨梧桐 All rights reserved. //

// Powered by 醉雨梧桐 //

// http://btyz.51web.cn/ //

// winterfire@163.com //

//////////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////

function add_ftp_user($user,$pws)//把用户添加到Serv-U的用户列表中

{

global $filepath,$FTPpath;

@copy($filepath,$filepath.".bak");//备份文件

$servu_config=file($filepath.".bak");

for($i=0;$i<count($servu_config);$i++){

if(substr($servu_config[$i],0,4)=="User"){

$user_num[0]=substr($servu_config[$i],4,1)+1;//判断现在有多少用户

$user_num[1]=$i+1;//判断新用户添加的位置

}

}

for($i=count($servu_config);$i<=$user_num[1];$i--){

$servu_config[$i]=$servu_config[$i-1];//把新用户后的内容向后一行

}

$servu_config[$user_num[1]]="User".$user_num[0]."=$user|1|0";//添加新用户到列表中

del_nl($servu_config);//删除空行

$inifile=fopen($filepath,"w");

fputs($inifile,implode("\n",$servu_config));//配置文件写入ServUDaemon.ini

fclose($inifile);

//用户详细配置

$config="\n[USER=$user|1]

Password=$pws

HomeDir=g:\my documents\http\webspace\\".$user."

RelPaths=1

DiskQuota=1|10240000|0

MaxUsersLoginPerIP=1

SpeedLimitUp=51200

SpeedLimitDown=51200

TimeOut=60

SessionTimeOut=600

MaxNrUsers=1

Access1=G:\My Documents\http\webspace\\".$user."|RWAMLCDP";

$inifile=fopen($filepath,"a");//打开新的文件指针

fputs($inifile,$config) or die("无法写入文件");//添加新用户的配置文件

fclose($inifile);//关闭文件指针

mkdir($FTPpath."user);//]\".$user);//建立ftp的文件夹

}

////////////////////////////////////////////////////////////////

function change_pws($user,$pws)//更改密码

{

global $filepath;

$servu_config=file($filepath);

del_nl($servu_config);//去除空行

for($i=0;$i<count($servu_config);$i++){

if($servu_config[$i]=="[USER=$user|1]"){ //判断用户所在的数组索引

break;//退出循环,取得名字项的$i值

}//if

}//for

for($i;$i<count($servu_config);$i++){//从名字项开始循环

if(substr($servu_config[$i],0,9)=="Password="){//判断名字项的下一个是密码项

$servu_config[$i]="Password=$pws";//修改密码值

break;//退出循环,防止修改到其他密码项

}

}

if($i==count($servu_config)){

print "找不到该用户";

exit();

}

$inifile=fopen($filepath,"w");//以写入的方式打开文件,原来文件中的内容将消失

fputs($inifile,implode("\n",$servu_config));//写入文件

fclose($inifile);//关闭文件指针

}

/////////////////////////////////////////////////////////////

function del_user($user)//删除用户

{

global $filepath;

$servu_config=file($filepath);

del_nl($servu_config);

for($i=0;$i<count($servu_config);$i++){

if(substr($servu_config[$i],6,strlen($servu_config[$i])-10)==$user){ //判断用户所在的数组索引

$servu_config[$i]="";//删除文件列表中的用户名例如去掉User1=ANONYMOUS|1|0

break;//退出循环,以便删除下一个内容:用户配置文件

}//if

}//for

for($i;$i<count($servu_config);$i++){

if($servu_config[$i]=="[USER=$user|1]")

$start=$i;//取得第一项的$i

if(isset($start)&&substr($servu_config[$i],0,6)=="[USER="&&($i>$start))

break;//退出循环

}//for

$end=$i-1;//取得最后一项$i-1

if(!isset($start)){

print "用户不存在";

exit();

}//end if

for($i=$start;$i<=$end;$i++){

$servu_config[$i]="";

}

del_nl($servu_config);//删除空行

$inifile=fopen($filepath,"w");//以写入的方式打开文件,原来文件中的内容将消失

fputs($inifile,implode("\n",$servu_config));//写入文件

fclose($inifile);//关闭文件指针

}

////////////////////////////////////////删除空行///////////////////////////////////////////

function del_nl(&$arr)

{

for($i=0;$i<count($arr)-1;$i++){

$arr[$i]=trim($arr[$i]);//去掉空格,回车,换行

if($arr[$i]==""){

$j=$i;

while($arr[$j])

$arr[$j]=$arr[$j+1];

$arr[$j]="\0";

}//end if

}//end for

}//end del_nl

?>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有