PHP中FTP操作类的示例分析

这篇文章主要介绍了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操作类的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!


当前标题:PHP中FTP操作类的示例分析
转载注明:http://azwzsj.com/article/gideii.html