Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP FTP 컨텍스트 옵션 정리와 실전 활용 예제

개요

PHP에서 ftp:// 프로토콜을 사용해 스트림을 열 때는 stream_context_create() 함수로 생성한 컨텍스트를 통해 다양한 옵션을 지정할 수 있습니다. 이러한 FTP 컨텍스트 옵션을 활용하면 파일 덮어쓰기, 이어받기 위치 지정, 프록시 경유 등 세부적인 전송 동작을 제어할 수 있습니다.

주요 FTP 컨텍스트 옵션

overwrite업로드 시 원격 서버에 이미 존재하는 파일의 덮어쓰기를 허용합니다.
resume_pos전송을 시작할 파일 오프셋(위치)입니다. 다운로드 작업에만 적용되며, 기본값은 0(파일의 시작 부분)입니다.
proxyHTTP 프록시 서버를 통해 FTP 요청을 전달합니다. 파일 읽기 작업에만 적용됩니다. 예: tcp://squid.example.com:8000

활용 예제

다음 예제는 fopen() 함수가 FTP 사이트에 이미 존재하는 파일을 덮어쓸 수 있도록 설정하는 방법을 보여줍니다. 먼저 stream_context_create()overwrite 옵션이 활성화된 컨텍스트를 만든 뒤, 이를 fopen()의 네 번째 인자로 전달합니다.

<?php
$ftp_path = 'ftp://username:password@example.com/example.txt';
$stream_options = array('ftp' => array('overwrite' => true));
$stream_context = stream_context_create($stream_options);
$fh = fopen($ftp_path, 'w', 0, $stream_context);
fputs($fh, 'Hello World');
fclose($fh);
?>

위 코드에서는 FTP URL에 사용자 이름과 비밀번호를 포함하여 인증을 처리하고, 쓰기 모드('w')로 파일을 연 후 문자열을 기록하고 있습니다. 만약 overwrite 옵션 없이 같은 작업을 수행하면, 대상 파일이 이미 존재하는 경우 덮어쓰기가 거부될 수 있으므로 주의해야 합니다.