千家信息网

PHP中FTP操作类的示例分析

发表于:2024-11-27 作者:千家信息网编辑
千家信息网最后更新 2024年11月27日,这篇文章主要介绍了PHP中FTP操作类的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。点击(此处)折叠或打开/*** 作用:F
千家信息网最后更新 2024年11月27日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. * @path -- 本地路径


  22. * @newpath -- 上传路径


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


  24. */


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


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


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


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


  29. }




  30. /**


  31. * 方法:移动文件


  32. * @path -- 原路径


  33. * @newpath -- 新路径


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


  35. */


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


  37. {


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


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


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


  41. }




  42. /**


  43. * 方法:复制文件


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


  45. * @path -- 原路径


  46. * @newpath -- 新路径


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


  48. */


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


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


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


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


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


  54. }




  55. /**


  56. * 方法:删除文件


  57. * @path -- 路径


  58. */


  59. function del_file($path){


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


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


  62. }




  63. /**


  64. * 方法:生成目录


  65. * @path -- 路径


  66. */


  67. function dir_mkdirs($path){


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


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


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


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


  72. {


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


  74. {


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


  76. if($tmp == FALSE)


  77. {


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


  79. exit;


  80. }


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


  82. }


  83. }


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


  85. {


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


  87. }


  88. }




  89. /**


  90. * 方法:关闭FTP连接


  91. */


  92. function close(){


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


  94. }


  95. }// class class_ftp end




  96. /************************************** 测试 ***********************************


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


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


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


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


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


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


  103. ******************************************************************************/


  104. ?>


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

0