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

PHPのFTP操作クラス(ファイルのコピー、移動、削除、ディレクトリの作成)

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

CURL の詳細な説明
curl_close — Curl セッションを閉じる
curl_copy_handle — Curl 接続リソースのすべてのコンテンツとパラメーターをコピーする
curl_errno — 現在のセッションのエラー情報を含む数値を返す
curl_error — 現在のセッションのエラー情報を含む文字列を返す
curl_exec —curl セッションを実行します
curl_getinfo —curl 接続リソース ハンドルに関する情報を取得します
curl_init —curl セッションを初期化します

curl_multi_add_handle — Curl バッチ セッションに別の Curl ハンドル リソースを追加します
curl_multi_close — バッチ ハンドル リソースを閉じる
curl_multi_exec — Curl バッチ ハンドルを解析します
curl_multi_getcontent — フェッチされた出力のテキスト ストリームを返します
curl_multi_info_read — 現在解析されている Curl 関連を取得します送信情報
curl_multi_init —curl バッチ ハンドル リソースを初期化します
curl_multi_remove_handle —curl バッチ ハンドル リソース内のハンドル リソースを削除します
curl_multi_select — cURL 拡張子に関連付けられたすべてのソケットを取得し、「選択」可能になります
curl_setopt_array — セッション パラメーターを設定します配列形式のカールの場合
curl_setopt —curl のセッションパラメータを設定します
curl_version —curl 関連のバージョン情報を取得します
curl_init() 関数の役割は、curl セッションを初期化することです。curl_init() 関数は独特です。 1 つのパラメータはオプションで、URL アドレスを表します。
curl_exec() 関数は、curl セッションを実行するために使用されます。唯一のパラメーターは、curl_init() 関数によって返されるハンドルです。
curl_close() 関数は、curl セッションを閉じるために使用されます。唯一のパラメータは、curl_init() 関数によって返されるハンドルです。

    $url = 'http://www.@@@@@.com/';
  1. //curl を初期化します
  2. $curl =curl_init($url);タイムアウト 30 秒
  3. curl_setopt($curl, CURLOPT_TIMEOUT, '30');
  4. //ユーザー エージェント ヘッダー
  5. curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:14.0) Gecko/20120722 Firefox/14.0.1");
  6. //ファイル ストリームに戻る
  7. curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
  8. //ヘッダー ファイル データ ストリーム出力を開く
  9. curl_setopt($curl, CURLOPT_HEADER, 1);
  10. $string = curl_exec ($curl);
  11. var_dump($string);
  12. preg_match_all('/Set-Cookie:stest=(.*)/i', $string, $results);
  13. コードをコピー

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