How can one handle the requirement for a certificate when using ftp_ssl_connect in PHP?

When using ftp_ssl_connect in PHP, you may encounter the need to provide a certificate for secure connections. To handle this requirement, you can set the SSL context options using stream_context_set_option before establishing the FTP connection. This allows you to specify the path to the certificate file and any other necessary SSL settings.

$ftp_server = 'ftp.example.com';
$ftp_user = 'username';
$ftp_pass = 'password';
$ftp_ssl = true;

$context = stream_context_create([
    'ssl' => [
        'verify_peer' => true,
        'cafile' => '/path/to/certificate.pem'
    ]
]);

$ftp_conn = ftp_ssl_connect($ftp_server, null, null, 30, $context);

if ($ftp_conn) {
    // Connection successful, proceed with FTP operations
    ftp_login($ftp_conn, $ftp_user, $ftp_pass);
    
    // Example: List files in the current directory
    $files = ftp_nlist($ftp_conn, ".");
    print_r($files);
    
    // Close the FTP connection
    ftp_close($ftp_conn);
} else {
    echo "Failed to connect to FTP server";
}