牛牛在线工具

ftp_nb_fget()

收录 8868 个 PHP 函数,含用途说明与用法示例。

ftp_nb_fget()

从 FTP 服务器上以非阻塞模式获取文件并写入本地文件

函数名称:ftp_nb_fget() 函数描述:从 FTP 服务器上以非阻塞模式获取文件并写入本地文件 适用版本:PHP 4 >= 4.3.0, PHP 5, PHP 7 语法:ftp_nb_fget(resource $ftp_stream, resource $handle, string $remote_file, int $mode, int $resumepos = 0) : int 参数: $ftp_stream:FTP 连接的资源句柄,通过 ftp_connect() 或 ftp_ssl_connect() 函数返回 $handle:本地文件的打开文件句柄,通过 fopen() 函数返回 $remote_file:远程 FTP 服务器上的文件路径 $mode:文件传输模式,可以是 FTP_ASCII 或 FTP_BINARY $resumepos:可选参数,指定从该位置继续传输文件,默认为 0,表示从头开始传输 返回值: 成功时返回 FTP_FAILED 或 FTP_FINISHED,表示文件传输已完成或失败 失败时返回 FTP_MOREDATA,表示文件传输仍在进行中 示例: // 连接到 FTP 服务器 $ftp_conn = ftp_connect('ftp.example.com'); if (!$ftp_conn) { die('无法连接到 FTP 服务器'); } // 登录到 FTP 服务器 $login_result = ftp_login($ftp_conn, 'username', 'password'); if (!$login_result) { die('登录失败'); } // 打开本地文件 $local_file = fopen('local_file.txt', 'w'); // 开始非阻塞模式获取文件 $remote_file = 'remote_file.txt'; $mode = FTP_ASCII; $resumepos = 0; $transfer_result = ftp_nb_fget($ftp_conn, $local_file, $remote_file, $mode, $resumepos); // 检查传输状态 while ($transfer_result == FTP_MOREDATA) { // 继续传输 $transfer_result = ftp_nb_continue($ftp_conn); } // 检查传输结果 if ($transfer_result == FTP_FINISHED) { echo '文件传输已完成'; } else { echo '文件传输失败'; } // 关闭 FTP 连接和本地文件 ftp_close($ftp_conn); fclose($local_file); 说明: ftp_nb_fget() 函数用于以非阻塞模式从 FTP 服务器上获取文件并写入本地文件。 首先需要通过 ftp_connect() 函数连接到 FTP 服务器,再通过 ftp_login() 函数登录到 FTP 服务器。 使用 fopen() 函数打开本地文件,并将返回的文件句柄作为参数传递给 ftp_nb_fget() 函数。 指定远程文件路径、文件传输模式和可选的续传位置参数,调用 ftp_nb_fget() 函数开始文件传输。 使用 ftp_nb_continue() 函数在循环中继续传输文件,直到传输状态变为 FTP_FINISHED 或 FTP_FAILED。 最后通过 ftp_close() 函数关闭 FTP 连接,通过 fclose() 函数关闭本地文件。 根据返回值判断文件传输的结果,FTP_FINISHED 表示传输已完成,FTP_FAILED 表示传输失败,FTP_MOREDATA 表示传输仍在进行中。