FTP ftp_nb_get

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

ftp_nb_get — FTP 서버에서 파일을 검색하고 로컬 파일에 씁니다(비차단).


설명

ftp_nb_get(
    FTP\Connection $ftp,
    string $local_filename,
    string $remote_filename,
    int $mode = FTP_BINARY,
    int $offset = 0
): int
                

ftp_nb_get()은 FTP 서버에서 원격 파일을 검색하고 로컬 파일에 저장합니다.

이 함수와 ftp_get()의 차이점은 이 함수가 파일을 비동기적으로 검색하므로 파일이 다운로드되는 동안 프로그램이 다른 작업을 수행할 수 있다는 것입니다.


매개변수

ftp
FTP\Connection 인스턴스입니다.
local_filename
로컬 파일 경로(파일이 이미 있는 경우 덮어쓰임).
remote_filename
원격 파일 경로입니다.
mode
전송 모드입니다. FTP_ASCII 또는 FTP_BINARY여야 합니다.
offset
다운로드를 시작할 원격 파일의 위치입니다.

반환 값

FTP_FAILED 또는 FTP_FINISHED 또는 FTP_MOREDATA를 반환합니다.


변경 로그

버전 설명
8.1.0 ftp 매개변수는 이제 FTP\Connection 인스턴스를 필요로 합니다. 이전에는 리소스가 필요했습니다.
7.3.0 mode 매개변수는 이제 선택 사항입니다. 이전에는 필수였습니다.

Examples

예제 #1 ftp_nb_get() 예제

                  
<?php

// Initiate the download
$ret = ftp_nb_get($ftp, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // Do whatever you want
   echo ".";

   // Continue downloading...
   $ret = ftp_nb_continue($ftp);
}
if ($ret != FTP_FINISHED) {
   echo "There was an error downloading the file...";
   exit(1);
}
?>
                  
                

예제 #2 ftp_nb_get()으로 다운로드 재개

                  
<?php

// Initiate
$ret = ftp_nb_get($ftp, "test", "README", FTP_BINARY,
                      filesize("test"));
// OR: $ret = ftp_nb_get($ftp, "test", "README",
//                           FTP_BINARY, FTP_AUTORESUME);
while ($ret == FTP_MOREDATA) {

   // Do whatever you want
   echo ".";

   // Continue downloading...
   $ret = ftp_nb_continue($ftp);
}
if ($ret != FTP_FINISHED) {
   echo "There was an error downloading the file...";
   exit(1);
}
?>
                  
                

예제 #3 ftp_nb_get()을 사용하여 위치 100에서 새 파일로 다운로드 재개

                  
<?php

// Disable Autoseek
ftp_set_option($ftp, FTP_AUTOSEEK, false);

// Initiate
$ret = ftp_nb_get($ftp, "newfile", "README", FTP_BINARY, 100);
while ($ret == FTP_MOREDATA) {

   /* ... */

   // Continue downloading...
   $ret = ftp_nb_continue($ftp);
}
?>
                  
                

위의 예에서 newfile은 오프셋 100에서 읽기 시작했기 때문에 FTP 서버의 README보다 100바이트 작습니다. FTP_AUTOSEEK를 비활성화하지 않으면 newfile의 처음 100바이트는 '\0'이 됩니다.


기타

  • ftp_nb_fget() - FTP 서버에서 파일을 검색하여 열린 파일에 씁니다(비차단).
  • ftp_nb_continue() - 파일 검색/전송 계속(비차단)
  • ftp_fget() - FTP 서버에서 파일을 다운로드하고 열린 파일에 저장
  • ftp_get() - FTP 서버에서 파일 다운로드