FTP 와 FTPS

PHP 3, PHP 4. PHP 4.3.0이후부터 ftps://

FTP를 통해 기존 파일에 대한 읽기 권한과 새로운 파일의 생성 권한을 허용한다. 서버가 패시브 모드(passive mode) ftp를 지원하지않으면, 접속이 실패할것이다.

읽거나 쓰기 위해 파일을 열수 있다. 그러나 동시에 읽기/쓰기를 할수 없다. 원격 파일이 ftp 서버에 이미 존재하고 그 파일에 쓰기를 시도하려하는데 컨텍스트 옵션 overwrite 를 설정하지 않았다면, 접속이 실패할것이다. 차선책으로 FTP extension을 사용할수 있다.

덧붙이기: PHP 5.0.0부터 ftp:// URL 래퍼를 통해서 파일을 덧붙일 수 있습니다. 이전 버전에서, ftp://를 통한 파일 덧붙이기는 실패합니다.

PHP 4.3.0부터 ftps://를 지원한다. ftp://와 동일하지만, ftp 서버를 통해 안전한 접속 협상(negotiate)을 시도하려 한다. 서버가 SSL을 지원하지 않으면, 접속은 원래의 인코딩되지 않는 ftp로 되돌아간다.

참고: FTPS는 PHP 4.3.0부터 지원되었다. OpenSSL을 지원하도록 컴파일되어야 한다.

표 J-4. 래퍼 요약

속성PHP 4PHP 5
allow_url_fopen으로 제한YesYes
읽기 허용YesYes
쓰기 허용Yes (새 파일만)Yes (새 파일/overwrite로 기존 파일)
추가 허용NoYes
동시 읽기/쓰기 허용NoNo
stat() 지원No filesize(), filetype(), file_exists(), is_file(), is_dir() 요소만.
unlink() 지원NoYes
rename() 지원NoYes
mkdir() 지원NoYes
rmdir() 지원NoYes

표 J-5. 컨텍스트 옵션(PHP 5.0.0의)

이름사용기본값
overwrite 원격 서버에 이미 존재하는 파일 덮어쓰기를 허용. 쓰기 모드(업로딩)에만 적용. FALSE (Disabled)
resume_pos 전송을 시작할 파일 위치. 읽기 모드(다운로딩)에만 적용. 0 (파일 처음)

기저(Underlying) 소켓 스트림 컨텍스트 옵션: 기저(underlying) 전송ftp:// 스트림을 지원할수 있는 추가 컨텍스트 옵션이며 tcp:// 전송에 대한 컨텍스트 옵션으로 참조된다. ftps:// 스트림에 대해서는 ssl:// 전송에 대한 컨텍스트 옵션으로 참조된다.