홈으로 | 무료회원가입 | 아이디/비번찾기
추천음악방송
PHP로 FTP프로그램 만들기 알고리즘
11년 전
리눅스의 환경에서는 PHP를 소스 컴파일 하는 과정중에 "./configure" 할 때 옵션에 "--enable-ftp" 을 추가하여 configure를 해야 합니다. 그렇지 않은 경우에는 PHP로 FTP프로그램을 사용할 수 없습니다. 윈도우용 APM의 경우에는 계정과 비번이 존재하지 않으므로 사용하실 수 없습니다.


-------- FTP함수의 종류와 사용법

(1) ftp_connect : FTP서버에 연결한다.
-----------------------------------------------
int ftp_connect (string host [, int port])
$ftp=ftp_connect("서버주소 또는 도메인명",21);
-----------------------------------------------

(2) ftp_login : 계정과 패스워드로 서버에 접근한다.
-----------------------------------------------
int ftp_login (int ftp_stream, string username, string password)
$ftplogin = ftp_login($ftp, "$ftp_user_name", "$ftp_user_pass");
-----------------------------------------------

(3) ftp_pwd : 현재 디렉토리 값을 리턴한다.
-----------------------------------------------
int ftp_pwd (int ftp_stream)
$ftp_dir = $ftp_pwd($ftp);
-----------------------------------------------

(4) ftp_cdup : 가장 상위 디렉토리로 이동
-----------------------------------------------
int ftp_cdup (int ftp_stream)
$ftp_dir = $ftp_cdup($ftp);
-----------------------------------------------

(5) ftp_chdir : FTP 디렉토리의 변경
-----------------------------------------------
int ftp_chdir (int ftp_stream, string directory)
$chdir=ftp_chdir ($ftp, $ftp_dir);
-----------------------------------------------

(6) ftp_mkdir : 디렉토리를 만들고 만든 디렉토리명을 반환한다.
-----------------------------------------------
string ftp_mkdir (int ftp_stream, string directory)
$mkdir = ($ftp,"만들 디렉토리명");
-----------------------------------------------

(7) ftp_rmdir : 디렉토리를 삭제한다.
-----------------------------------------------
int ftp_rmdir (int ftp_stream, string directory)
$mkdir = ($ftp,"삭제할 디렉토리명");
-----------------------------------------------

(8) ftp_nlist : 디렉토리의 파일이름을 배열로 반환한다.
-----------------------------------------------
int ftp_nlist (int ftp_stream, string directory)
$contents = ftp_nlist( $ftp, "디렉토리명");
-----------------------------------------------

(9) ftp_rawlist : 디렉토리의 파일이름과 읽고 쓰고 실행할 권한을 파일 당 한 줄의 배열로 반환한다.
-----------------------------------------------
int ftp_rawlist (int ftp_stream, string directory)
$contents = ftp_nlist( $ftp, "디렉토리명");
-----------------------------------------------

(10) ftp_systype : FTP서버의 타입을 리턴하는데 리눅스는 UNIX로 표시해준다.
-----------------------------------------------
int ftp_systype (int ftp_stream)
echo ftp_systype($ftp);
-----------------------------------------------

(11) ftp_get : FTP로부터 파일을 다운로드 받는다.
-----------------------------------------------
int ftp_get (int ftp_stream, string local_file, string remote_file, int mode)
$download = ftp_get($ftp, "저장할 파일명", "다운받을 파일명","FTP_ASCII or FTP_BINARY");
-----------------------------------------------

.pl 또는 .cgi 같은 Perl CGI인 경우에는 FTP_ASCII로 다운 받고 다른 파일은 FTP_BINARY로 다운 받아야 한다.

(12) ftp_fget : FTP로부터 파일 포인터를 다운받는다.
-----------------------------------------------
int ftp_fget (int ftp_stream, int fp, string remote_file, int mode)
$download = ftp_fget($ftp, "저장할 파일명", "다운받을 파일명","FTP_ASCII or FTP_BINARY");
-----------------------------------------------

(13) ftp_put : FTP서버에 파일을 업로드 한다.
-----------------------------------------------
int ftp_put (int ftp_stream, string remote_file, string local_file, int mode)
$upload = ftp_put($ftp, "업로드할 파일명", "업로드될 파일명","FTP_ASCII or FTP_BINARY");
-----------------------------------------------

(14) ftp_fput : FTP서버에 파일 포인터를 업로드한다.
-----------------------------------------------
int ftp_fput (int ftp_stream, string remote_file, string local_file, int mode)
$upload = ftp_fput($ftp, "업로드할 파일명", "업로드될 파일명","FTP_ASCII or FTP_BINARY");
-----------------------------------------------

(15) ftp_size : 파일의 사이즈를 구한다.
-----------------------------------------------
int ftp_size (int ftp_stream, string remote_file)
$filesize = ftp_size( $ftp, $contents[$i] );
-----------------------------------------------
ftp_nlist 나 ftp_rawlist에 의해 구한 파일명에 대한 배열값인 $contents[$i]에는 각 파일명과 속성이 저장되어지는데 이 파일명을 사이즈로 구하면 파일이면 사이즈가 리턴되고 디렉토리이면 -1이 리턴된다.

(16) ftp_mdtm : 파일의 마지막 수정시간을 timestamp 값으로 리턴한다.
-----------------------------------------------
int ftp_mdtm (int ftp_stream, string remote_file)
$filemdth = ftp_size( $ftp, "파읾명");
-----------------------------------------------

(17) ftp_rename : 파일명을 변경한다.
-----------------------------------------------
int ftp_rename (int ftp_stream, string from, string to)
$rename = ftp_rename( $ftp, "바꿀 파일명", "바뀐 후 파일명");
-----------------------------------------------

(18) ftp_delete : 해당 파일을 삭제한다.
-----------------------------------------------
int ftp_delete (int ftp_stream, string path)
$delfile = ftp_delete($ftp, "지울 파일명");
-----------------------------------------------

(19) ftp_site : FTP에 사용 가능한 명령어를 실행한다.
-----------------------------------------------
int ftp_site (int ftp_stream, string cmd)
$chmod=ftp_site ($ftp,"chmod 777 파일명");
-----------------------------------------------

CHMOD와 같은 site 명령어를 실행한다.

(20) ftp_quit : 연결된 FTP의 접속을 끊는다.
-----------------------------------------------
int ftp_quit (int ftp_stream)
ftp_quit ($ftp);
-----------------------------------------------

------ FTP를 이용하여 접속하는 예제
<?
$ftp = @ftp_connect("koreaphp.co.kr");
$ftplogin = @ftp_login($ftp, "계정명", "비번");
if ((!$ftplogin) or (!$ftp)) {
echo "Ftp 연결이 실패하였습니다.";
echo "ftpserver에 ftp 계정 비밀번호를 확인한 후에 다시 접속해보시기 바랍니다.";
exit;
} else {
$ftp_dir=ftp_pwd($ftp);
$ftp_dir=$ftp_dir . "public_html";
echo "서버 : koreaphp.co.kr 계정명 : test 접속성공하였습니다. <br>";
echo "현재 디렉토리의 절대경로는 $ftp_dir 입니다. <br>";
}
?>
추천추천 : 190 추천 목록
번호 제목
3,033
 PHP 정규식 정리
3,032
 PHP 정규식을 활용한 태그 및 특정 문자열 제거 및 추출 방법
3,031
 php 크롤링 또는 파싱 함수, 정규식 모음
3,030
 제이쿼리 기본 명령어
3,029
 웹페이지 가로 모드세로 모드 인식하기
3,028
 모바일 웹 화면 강제 회전(가로모드 고정)
3,027
 [HTML5]에서 frameset 대체 방법과 iframe 속성
3,026
 HTML <Audio> 사용법
3,025
 윈도우10 시스템파일 손상 (초간단 오류 복구방법!!)
3,024
 PHP 파일 존재 여부 파악하기(로컬 파일 존재 및 원격지 파일 존재)
3,023
 [CSS] 박스 세로 가운데 중앙 정렬 6가지
3,022
 CSS Layout 수평 & 수직 정렬
3,021
 여러 도메인들 간 쿠키 공유하기
3,020
 태그 사이에 있는 텍스트를 추출
3,019
 [JQuery] textbox focus on off일때 숫자 콤마 보여주기
3,018
 쿠키 생성,가져오기,삭제
3,017
 사용자 함수 모음
3,016
 마우스,키보드 제한 ( 오른쪽클릭,드래그,영역선택등..)
3,015
 [HTML5] <video> - DOM으로 제어하기
3,014
 HTML5 video 태그에서 영상 좌우반전
3,013
 PHP - 특정 태그 및 문자열 추출, 제거
3,012
 [PHP] define과 defined의 차이
3,011
 우클릭 완벽차단 스크립트
3,010
 iframe 높이 100% 맞추기
3,009
 curl 함수를 이용한 HTTP REFERER 변경
목록
뮤직트로트 부산광역시 부산진구 가야동 ㅣ 개인정보취급방침
Copyright (C) musictrot All rights reserved.