PHP의 ftp_set_option() 함수는 이미 연결된 FTP 세션에 대해 다양한 런타임 옵션을 설정하는 데 사용됩니다. 예를 들어, 네트워크 작업의 제한 시간(타임아웃)을 변경하거나 자동 탐색(auto-seek) 기능을 켜고 끌 수 있습니다.
문법 (Syntax)
ftp_set_option(conn, option, value);
매개변수 (Parameters)
conn – 옵션을 적용할 FTP 연결 리소스입니다.
ftp_connect()함수가 반환한 값입니다.option – 설정하려는 런타임 옵션입니다. 사용 가능한 값은 다음과 같습니다.
- FTP_TIMEOUT_SEC: 네트워크 작업에 적용되는 제한 시간을 초 단위로 변경합니다. 기본값은 90초입니다.
- FTP_AUTOSEEK: 자동 탐색 기능을 활성화(TRUE)하거나 비활성화(FALSE)합니다.
value – 위에서 선택한 옵션에 지정할 값입니다. FTP_TIMEOUT_SEC에는 초 단위의 정수를, FTP_AUTOSEEK에는 TRUE 또는 FALSE를 전달합니다.
반환값 (Return)
옵션이 성공적으로 설정되면 TRUE를 반환하고, 실패하면 FALSE를 반환합니다. 잘못된 옵션 값을 전달하면 경고 메시지가 발생할 수 있습니다.
예제 (Example)
다음은 FTP 서버에 연결한 후 타임아웃을 60초로 설정하는 예제입니다.
<?php
$ftp_server = "192.168.0.4";
$ftp_user = "username";
$ftp_pass = "gfhgfj236k";
// FTP 서버에 연결
$conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
 // 로그인
$login = ftp_login($conn, $ftp_user, $ftp_pass);
// 타임아웃을 60초로 설정
if (ftp_set_option($conn, FTP_TIMEOUT_SEC, 60)) {
echo "옵션 설정 성공";
} else {
echo "옵션 설정 실패";
}
// 연결 종료
ftp_close($conn);
?>참고 사항
ftp_set_option()은 반드시ftp_connect()와ftp_login()으로 정상적인 로그인이 완료된 후 호출해야 합니다.대용량 파일 전송 시 네트워크 상태에 따라 기본 타임아웃(90초)이 부족할 수 있으므로, 이 경우 FTP_TIMEOUT_SEC 옵션으로 값을 늘려주는 것이 좋습니다.
PHP 8.0 이상에서는 FTP 관련 함수들이 FTP\Connection 객체를 사용하도록 변경되었지만, 함수의 동작 방식은 동일합니다.