What potential limitations or bugs exist within PHP's FTP extension, specifically related to file size and transfer issues?

One potential limitation in PHP's FTP extension is that it may have issues transferring large files due to memory constraints or timeouts. To solve this issue, you can increase the memory limit and execution time in your PHP configuration or break large files into smaller chunks for transfer.

// Increase memory limit and execution time
ini_set('memory_limit', '256M');
ini_set('max_execution_time', 300);

// Open FTP connection
$ftp = ftp_connect('ftp.example.com');

// Login to FTP server
ftp_login($ftp, 'username', 'password');

// Transfer large file in chunks
$localFile = 'large_file.zip';
$remoteFile = 'large_file.zip';
$handle = fopen($localFile, 'rb');
$chunkSize = 1024 * 1024; // 1MB chunks
while (!feof($handle)) {
    $chunk = fread($handle, $chunkSize);
    ftp_fput($ftp, $remoteFile, $chunk, FTP_BINARY);
}
fclose($handle);

// Close FTP connection
ftp_close($ftp);