>  기사  >  백엔드 개발  >  PHP의 FTP 작업 클래스(파일 복사, 이동, 삭제, 디렉터리 생성)

PHP의 FTP 작업 클래스(파일 복사, 이동, 삭제, 디렉터리 생성)

WBOY
WBOY원래의
2016-07-25 08:43:40953검색
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_I FTP($FTP"連線失敗");
  19. @ftp_login($this->conn_id,$FTP_USER,$FTP_PASS) or 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 "檔案上傳失敗,請檢查權限及路徑是否正確! 🎜> if($type) $this->dir_mkdirs($newpath);
  33. $this->off = @ftp_rename($this->conn_id,$path,$newpath);
  34. if(!$this ->off) echo "檔案移動失敗,請檢查權限及原路徑是否正確! ";
  35. }
  36. /**
  37. * 方法:移動檔案
  38. * @path -- 原路徑
  39. * @newpath -- 新路徑
  40. * @type -- 若目標目錄不存在則新建
  41. */
  42. function copy_file($path,$newpath,$type=true)
  43. {
  44. $downpath = "c:/tmp. dat";
  45. $this->off = @ftp_get($this->conn_id,$downpath,$path,FTP_BINARY);// 下載
  46. if(!$this->off) echo "檔案複製失敗,請檢查權限及原路徑是否正確! ";
  47. $this->up_file($downpath,$newpath,$type);
  48. }
  49. /**
  50. * 方法:複製檔案
  51. * 說明:由於FTP無複製指令,本方法變通操作為:下載後再上傳到新的路徑
  52. * @path -- 原始路徑
  53. * @newpath -- 新路徑
  54. * @type -- 若目標目錄不存在則新建
  55. */
  56. function del_file($path)
  57. {
  58. $this->off = @ftp_delete($this->conn_id,$path);
  59. if(!$this->off) echo "檔案刪除失敗,請檢查權限及路徑是否正確! ";
  60. }
  61. /**
  62. * 方法:刪除檔案
  63. * @path -- 路徑
  64. */
  65. }
  66. /**
  67. * 方法:產生目錄
  68. * @path -- 路徑
  69. */
  70. function dir_mkdirs($path)
  71. {
  72. $path_arr = explode('/',$path); // 取目錄陣列
  73. $file_name = array_pop($path_arr); // 彈出檔案名稱
  74. $path_div = count($path_arr); // 取層數
  75. foreach($path_arr as $val) // 建立目錄
  76. {
  77. if(@ftp_chdir($this->conn_id,$val) == FALSE)
  78. {
  79. $tmp = @ftp_mkdir($this->conn_id,$val);
  80. if($tmp == FALSE)
  81. {
  82. echo "目錄建立失敗,請檢查權限及路徑是否正確!";
  83. 종료;
  84. }
  85. @ftp_chdir($this->conn_id,$val);
  86. }
  87. }
  88. for($i=1;$i=$ path_div;$i ) // 루트로 대체
  89. {
  90. @ftp_cdup($this->conn_id)
  91. }
  92. }
  93. /**
  94. * 방법: FTP 접속 종료
  95. */
  96. function close()
  97. {
  98. @ftp_close($this->conn_id)
  99. }
  100. }// class class_ftp end
  101. /************************************** 시험************* **********************
  102. $ftp = new class_ftp('192.168.100.143',21,'user','pwd') // FTP 연결 열기
  103. //$ftp->up_file('aa.txt','a/b/c/cc.txt') //파일 업로드
  104. //$ftp->move_file( 'a/b/c/cc.txt','a/cc.txt'); // 파일 이동
  105. //$ftp->copy_file('a/cc.txt','a/b/ dd.txt'); // 파일 복사
  106. //$ftp->del_file('a/b/dd.txt') // 파일 삭제
  107. $ftp->close(); / FTP 연결 종료
  108. ******************************************* ***********************************/
  109. ? >
코드 복사

CURL에 대한 자세한 설명
컬_close — 컬 세션 닫기
컬_복사_핸들 — 컬 연결 리소스의 모든 내용과 매개변수 복사
컬_errno — 현재 세션의 오류 정보가 포함된 숫자 숫자 반환
cur_error — 현재 세션에 대한 오류 정보가 포함된 문자열 반환
컬_exec — 컬 세션 실행
컬_getinfo — 컬 연결 리소스 핸들에 대한 정보 가져오기
컬_init — 컬 세션 초기화

cur_multi_info_read — 현재 구문 분석된 컬의 관련 전송 정보를 가져옵니다.

cur_multi_init — 컬 배치 핸들 리소스를 초기화합니다.
컬_multi_remove_handle — 컬 배치 핸들 리소스에서 핸들 리소스를 제거합니다.
컬_multi_select — 연결된 모든 소켓을 가져옵니다. cURL 확장자를 사용하여 "선택"할 수 있습니다.
컬_setopt_array — 배열 형식으로 컬에 대한 세션 매개변수를 설정합니다.
컬_setopt — 컬에 대한 세션 매개변수를 설정합니다.
컬_버전 — 컬을 가져옵니다. 관련 버전 정보
curl_init() 함수의 역할은 컬 세션을 초기화하는 것입니다. 컬_init() 함수의 유일한 매개변수는 선택사항이며 URL 주소를 나타냅니다.
컬 세션을 실행하는 데는 컬_exec() 함수가 사용됩니다. 유일한 매개변수는 컬_init() 함수가 반환하는 핸들입니다.
컬 세션을 닫는 데는 컬_close() 함수가 사용됩니다. 유일한 매개변수는 컬_init() 함수가 반환하는 핸들입니다.




$url = 'http://www.@@@@@.com/'

//컬 초기화; <… 컬, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:14.0) Gecko/20120722 Firefox/14.0.1")
//파일 스트림 반환
    컬_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
  1. //헤더 파일 데이터 스트림 출력 열기
  2. curl_setopt($curl, CURLOPT_HEADER, 1)
  3. $string = cur_exec($curl)
  4. var_dump($string); > preg_match_all('/Set-Cookie:stest=(.*)/i', $string, $results)
  5. var_dump($results)
  6. ?> 코드 복사

  7. PHP, FTP
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.