PHP中FTP操作类的示例分析

发布时间:2021-10-19 11:09:07 作者:小新
阅读:141
PHP开发者专用服务器,限时0元免费领! 查看>>

这篇文章主要介绍了PHP中FTP操作类的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。


 

  点击(此处)折叠或打开

  1.   /**
     

  2.   * 作用:FTP操作类( 拷贝、移动、删除文件/创建目录 )

  3.   */

  4.   class class_ftp{

  5.       public $off; // 返回操作状态(成功/失败)

  6.       public $conn_id; // FTP连接

  7.       /**

  8.        * 方法:FTP连接

  9.        * @FTP_HOST -- FTP主机

  10.        * @FTP_PORT -- 端口

  11.        * @FTP_USER -- 用户名

  12.        * @FTP_PASS -- 密码

  13.        */

  14.       function __construct($FTP_HOST,$FTP_PORT,$FTP_USER,$FTP_PASS){

  15.           $this->conn_id = @ftp_connect($FTP_HOST,$FTP_PORT) or die("FTP服务器连接失败");

  16.           @ftp_login($this->conn_id,$FTP_USER,$FTP_PASS) or die("FTP服务器登陆失败");

  17.           @ftp_pasv($this->conn_id,1); // 打开被动模拟

  18.       }

  19.       

  20.       /**

  21.        * 方法:上传文件

  22.        * @path -- 本地路径

  23.        * @newpath -- 上传路径

  24.        * @type -- 若目标目录不存在则新建

  25.        */

  26.       function up_file($path,$newpath,$type=true){

  27.           if($type) $this->dir_mkdirs($newpath);

  28.           $this->off = @ftp_put($this->conn_id,$newpath,$path,FTP_BINARY);

  29.           if(!$this->off) echo "文件上传失败,请检查权限及路径是否正确!";

  30.       }

  31.       

  32.       /**

  33.        * 方法:移动文件

  34.        * @path -- 原路径

  35.        * @newpath -- 新路径

  36.        * @type -- 若目标目录不存在则新建

  37.        */

  38.       function move_file($path,$newpath,$type=true)

  39.       {

  40.           if($type) $this->dir_mkdirs($newpath);

  41.           $this->off = @ftp_rename($this->conn_id,$path,$newpath);

  42.           if(!$this->off) echo "文件移动失败,请检查权限及原路径是否正确!";

  43.       }

  44.       

  45.       /**

  46.        * 方法:复制文件

  47.        * 说明:由于FTP无复制命令,本方法变通操作为:下载后再上传到新的路径

  48.        * @path -- 原路径

  49.        * @newpath -- 新路径

  50.        * @type -- 若目标目录不存在则新建

  51.        */

  52.       function copy_file($path,$newpath,$type=true){

  53.           $downpath = "c:/tmp.dat";

  54.           $this->off = @ftp_get($this->conn_id,$downpath,$path,FTP_BINARY);// 下载

  55.           if(!$this->off) echo "文件复制失败,请检查权限及原路径是否正确!";

  56.           $this->up_file($downpath,$newpath,$type);

  57.       }

  58.       

  59.       /**

  60.        * 方法:删除文件

  61.        * @path -- 路径

  62.        */

  63.       function del_file($path){

  64.           $this->off = @ftp_delete($this->conn_id,$path);

  65.           if(!$this->off) echo "文件删除失败,请检查权限及路径是否正确!";

  66.       }

  67.       

  68.       /**

  69.        * 方法:生成目录

  70.        * @path -- 路径

  71.        */

  72.       function dir_mkdirs($path){

  73.           $path_arr = explode('/',$path); // 取目录数组

  74.           $file_name = array_pop($path_arr); // 弹出文件名

  75.           $path_div = count($path_arr); // 取层数

  76.           foreach($path_arr as $val) // 创建目录

  77.           {

  78.               if(@ftp_chdir($this->conn_id,$val) == FALSE)

  79.               {

  80.                   $tmp = @ftp_mkdir($this->conn_id,$val);

  81.                   if($tmp == FALSE)

  82.                   {

  83.                       echo "目录创建失败,请检查权限及路径是否正确!";

  84.                       exit;

  85.                   }

  86.                   @ftp_chdir($this->conn_id,$val);

  87.               }

  88.           }

  89.           for($i=1;$i=$path_div;$i++) // 回退到根

  90.           {

  91.               @ftp_cdup($this->conn_id);

  92.           }

  93.       }

  94.       

  95.       /**

  96.        * 方法:关闭FTP连接

  97.        */

  98.       function close(){

  99.           @ftp_close($this->conn_id);

  100.       }

  101.   }// class class_ftp end

  102.  

  103.   /************************************** 测试 ***********************************

  104.   $ftp = new class_ftp('192.168.100.143',21,'user','pwd'); // 打开FTP连接

  105.   //$ftp->up_file('aa.txt','a/b/c/cc.txt'); // 上传文件

  106.   //$ftp->move_file('a/b/c/cc.txt','a/cc.txt'); // 移动文件

  107.   //$ftp->copy_file('a/cc.txt','a/b/dd.txt'); // 复制文件

  108.   //$ftp->del_file('a/b/dd.txt'); // 删除文件

  109.   $ftp->close(); // 关闭FTP连接

  110.   ******************************************************************************/

  111.   ?>

感谢你能够认真阅读完这篇文章,希望小编分享的“PHP中FTP操作类的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:
  1. php中http请求类的示例分析
  2. PHP的ftp文件,多文件上传操作类

开发者交流群:

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php ftp

上一篇:Workerman3.0.7如何整合Redis和ThinkPHP3.2.3

下一篇:如何使用python静态方法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》
开发者交流群×