博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用PHP即时添加,删除FTP帐号和更改FTP密码的函数 (转)
阅读量:2499 次
发布时间:2019-05-11

本文共 3107 字,大约阅读时间需要 10 分钟。

用PHP即时添加,删除FTP帐号和更改FTP密码的函数 (转)[@more@]

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

$filepath是Serv-U的地址,$FTPpath是你要开通FTP的夹地址
主要方式是把ServUDaemon.ini文件读如数组,然后操作数组元素达到修改文件的目的.初学,还不会写Class,大虾多多指点

<?php

///
//  Copyright (C) 醉雨梧桐 All rights reserved.  //
//  Powered by 醉雨梧桐    //
//  .cn/">http://btyz.51web.cn/    //
//  to:winterfire@163.com" rel="nofollow">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 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(" ",$servu_config));//配置文件写入ServUDaemon.ini
fclose($inifile);

//用户详细配置

$config=" [USER=$user|1]
Pass=$pws
HomeDir=g:my documentshttpwebspace".$user."
RelPaths=1
DiskQuota=1|10240000|0
MaxUsersLoginPerIP=1
SpeedLimitUp=51200
SpeedLimitDown=51200
TimeOut=60
SessionTimeOut=600
MaxNrUsers=1
Access1=G:My Documentshttpwebspace".$user."|RWAMLCDP";
$inifile=fopen($filepath,"a");//打开新的文件指针
fputs($inifile,$config) or die("无法写入文件");//添加新用户的配置文件
fclose($inifile);//关闭文件指针
mkdir($FTPpath."建立ftp的文件夹
}
function change_pws($user,$pws)//更改密码
{
  global $filepath;
  $servu_config=file($filepath);
  del_nl($servu_config);//去除空行
  for($i=0;$i  if($servu_config[$i]=="[USER=$user|1]"){ //判断用户所在的数组
  break;//退出循环,取得名字项的$i值
 }//if
  }//for
  for($i;$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(" ",$servu_config));//写入文件
  fclose($inifile);//关闭文件指针
}
/
function del_user($user)//删除用户
{
  global $filepath;
  $servu_config=file($filepath);
  del_nl($servu_config);
  for($i=0;$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  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(" ",$servu_config));//写入文件
  fclose($inifile);//关闭文件指针
}
删除空行///
function del_nl(&$arr)
{
 for($i=0;$i  $arr[$i]=trim($arr[$i]);//去掉空格,回车,换行
  if($arr[$i]==""){
  $j=$i;
  while($arr[$j])
  $arr[$j]=$arr[$j+1];
 $arr[$j]="";
  }//end if
 }//end for
}//end del_nl
?>

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10748419/viewspace-959366/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10748419/viewspace-959366/

你可能感兴趣的文章
codevs 1163:访问艺术馆
查看>>
冲刺Noip2017模拟赛3 解题报告——五十岚芒果酱
查看>>
并查集
查看>>
sessionStorage
查看>>
代码示例_进程
查看>>
PLSQL数据导入导出问题解决(空表、大字段表、表空间错误等)
查看>>
阻塞、非阻塞的概念和select函数的阻塞功能
查看>>
在Ubuntu64位加安装H3C的INode客户端软件
查看>>
Centos6系统yum升级安装程序库错误解决方法
查看>>
__tostring()和__invoke()的用法
查看>>
作业6
查看>>
es6中promise的用法
查看>>
实现双向绑定
查看>>
java websocket开发的客户端程序
查看>>
【git】强制覆盖本地代码
查看>>
Java中关键词之this,super的使用
查看>>
人工智能暑期课程实践项目——智能家居控制(一)
查看>>
前端数据可视化插件(二)图谱
查看>>
kafka web端管理工具 kafka-manager【转发】
查看>>
获取控制台窗口句柄GetConsoleWindow
查看>>