PHP';尝试SSL连接时的FTP功能

PHP';尝试SSL连接时的FTP功能,php,Php,我已经建立了所有可能的连接,以验证FTP服务器是否正常工作,甚至可以使用file_put_contents()上载文件,但在尝试SSL连接时,PHP的FTP函数对我不起作用。服务器配置为不允许非SSL连接,因此没有回退。没关系,一切都正常,但我真的想用ftp\u ssl\u connect()和ftp\u login()来工作 请参见此示例: <?php $username = 'someuser'; $password = 'SeCrEtPassWd'; $hostname

我已经建立了所有可能的连接,以验证FTP服务器是否正常工作,甚至可以使用file_put_contents()上载文件,但在尝试SSL连接时,PHP的FTP函数对我不起作用。服务器配置为不允许非SSL连接,因此没有回退。没关系,一切都正常,但我真的想用ftp\u ssl\u connect()和ftp\u login()来工作

请参见此示例:

<?php

$username    = 'someuser';
$password    = 'SeCrEtPassWd';
$hostname    = '192.168.1.10';
$filename      = 'whatever.txt';
$string_data  = 'This is the text content of the file. Pretty fancy eh?';


// USE file_put_contents W/ stream_context_create - WORKS !!!!
$url = 'ftps://' . $username . ':' . $password . '@' . $hostname . '/';
$opts = array('ftp' => array('overwrite' => true));
$context = stream_context_create( $opts );
file_put_contents( $url . $filename, $string_data, 0, $context );
//不起作用的代码结束----------------------

// USE PHP's FTP functions - DOES NOT WORK !!!
$conn_id = @ftp_ssl_connect( $hostname );
$login_result = ftp_login( $conn_id, $username, $password );
ftp_put( $conn_id, $filename, $filename, FTP_ASCII );
ftp_close( $conn_id );
/*
****ERRORS PERTAINING TO THE PROBLEM ----------------------------****

Warning: ftp_login() [function.ftp-login]: SSL/TLS handshake failed in C:\xampp\htdocs\script-library\ftps.php on line 20
Warning: ftp_login() [function.ftp-login]: Proceed with negotiation. in C:\xampp\htdocs\script-library\ftps.php on line 20
*/

这是PHP中的一个bug吗?我只是不明白为什么其他的东西都能工作,但PHP FTP函数却不能。我的问题是,我确实需要能够列出远程服务器上的文件,因为我不想覆盖它们。我想将文件重命名为不存在的文件。

您可以使用phpseclib来完成此操作,它非常适合我: 我需要:

ftp_pasv($conn_id, true);

登录后使我的工作。

phpseclib当前执行SFTP,而不是FTPS。