ホームページ  >  記事  >  バックエンド開発  >  PHP FTP操作クラス(アップロード、コピー、移動、ファイル削除/ディレクトリ作成)

PHP FTP操作クラス(アップロード、コピー、移動、ファイル削除/ディレクトリ作成)

WBOY
WBOYオリジナル
2016-07-25 08:46:31945ブラウズ
  1. /**
  2. * 機能: FTP 操作 (ファイルのコピー、移動、削除/ディレクトリの作成)
  3. * 時刻: 2006/5/9
  4. * 著者: Xinran Suifeng
  5. * QQ: 276624915
  6. */
  7. class class_ftp
  8. {
  9. public $off; // 操作ステータス (成功/失敗) を返す
  10. public $conn_id; // FTP 接続
  11. /**
  12. * メソッド: FTP 接続
  13. * @FTP_HOST -- FTP ホスト
  14. * @FTP_PORT -- ポート
  15. * @FTP_USER -- ユーザー名
  16. * @FTP_PASS -- パスワード
  17. * /
  18. function __construct($FTP_HOST,$FTP_PORT,$FTP_USER,$FTP_PASS)
  19. {
  20. $this->conn_id = @ftp_connect($FTP_HOST,$FTP_PORT) or die("FTP サーバー接続に失敗しました");
  21. @ftp_login ($this->conn_id,$FTP_USER,$FTP_PASS) または die("FTP サーバーのログインに失敗しました");
  22. @ftp_pasv($this->conn_id,1) // パッシブ シミュレーションをオンにします
  23. }
  24. /* *
  25. * メソッド: ファイルをアップロードします
  26. * @path -- ローカルパス
  27. * @newpath -- アップロードパス
  28. * @type -- ディレクトリが存在しない場合は新しいディレクトリを作成します
  29. */
  30. function up_file($path,$newpath,$type=true)
  31. {
  32. if($type) $this->gt;dir_mkdirs($newpath);
  33. $this->off = @ftp_put ( $this->conn_id,$newpath,$path,FTP_BINARY);
  34. if(!$this->off) echo "ファイルのアップロードに失敗しました。権限とパスが正しいか確認してください!";
  35. }
  36. / **
  37. * メソッド: ファイルを移動します
  38. * @path -- 元のパス
  39. * @newpath -- 新しいパス
  40. * @type -- ディレクトリが存在しない場合は新しいディレクトリを作成します
  41. */
  42. function move_file($path,$newpath,$type=true)
  43. {
  44. if($type) $this->dir_mkdirs($newpath);
  45. $this->off = @ ftp_rename($ this->conn_id,$path,$newpath);
  46. if(!$this->off) echo "ファイルの移動に失敗しました。アクセス許可と元のパスが正しいかどうか確認してください!";
  47. }
  48. / **
  49. * メソッド: ファイルをコピーします
  50. * 注: FTP にはコピー コマンドがないため、このメソッドの代替操作は次のとおりです: ダウンロードしてから新しいパスにアップロードします
  51. * @path -- 元のパス
  52. * @newpath -- 新しいpath
  53. * @type -- ターゲットディレクトリが存在しない場合は作成します
  54. */
  55. function copy_file($path,$newpath,$type=true)
  56. {
  57. $downpath = "c:/tmp.dat";
  58. $this->off = @ftp_get($this ->conn_id, $downpath,$path,FTP_BINARY);// ダウンロード
  59. if(!$this->off) echo "ファイルのコピーに失敗しました。権限と元のパスが正しいかどうかを確認してください。 ";
  60. $this->up_file($downpath,$newpath,$type);
  61. }
  62. /**
  63. * メソッド: ファイルを削除します
  64. * @path -- パス
  65. */
  66. function del_file($path)
  67. {
  68. $this->off = @ftp_delete ($this->conn_id,$path);
  69. if(!$this->off) echo "ファイルの削除に失敗しました。権限とパスが正しいか確認してください。 ";
  70. }
  71. /**
  72. * メソッド: ディレクトリを生成します
  73. * @path -- パス
  74. */
  75. function dir_mkdirs($path)
  76. {
  77. $path_arr =explode('/',$path); // ディレクトリ配列を取得
  78. $file_name = array_pop($path_arr) ; // ファイル名をポップアップします
  79. $path_div = count($path_arr) // レイヤー数を取得します
  80. foreach($path_arr as $val) // ディレクトリを作成します
  81. {
  82. if(@ftp_chdir($this- >conn_id,$ val) == FALSE)
  83. {
  84. $tmp = @ftp_mkdir($this->conn_id,$val);
  85. if($tmp == FALSE)
  86. {
  87. echo "ディレクトリの作成に失敗しました、お願いします権限とパスが正しいことを確認してください。 ";
  88. exit;
  89. }
  90. @ftp_chdir($this->conn_id,$val);
  91. }
  92. }
  93. for($i=1;$i=$path_div;$i++) // root にフォールバックします
  94. {
  95. @ftp_cdup($this->conn_id);
  96. }
  97. }
  98. /**
  99. *方法: FTP接続を閉じる
  100. */
  101. function close()
  102. {
  103. @ftp_close($this->conn_id);
  104. }
  105. }/ / class class_ftp end
  106. /************************************** テスト************* ************************
  107. $ftp = new class_ftp('192.168.100.143',21,'user','pwd'); // FTP 接続を開きます
  108. //$ftp->up_file('aa.txt','a/b/c/cc.txt') // ファイルをアップロードします
  109. //$ftp->move_file('a/b) /c /cc.txt','a/cc.txt'); // ファイルを移動
  110. //$ftp->copy_file('a/cc.txt','a/b/dd.txt'); // ファイルをコピー
  111. //$ftp->del_file('a/b/dd.txt') // ファイルを削除
  112. $ftp->close(); // FTP 接続を切断します
  113. ***** ** *********************************************** ***********************/
  114. ?>
コードをコピー

PHP、FTP

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。