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

PHP ftp_set_option() 함수 완벽 가이드 – FTP 연결의 런타임 옵션 설정하기

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 객체를 사용하도록 변경되었지만, 함수의 동작 방식은 동일합니다.