使用 PHP 在 FTP 帐户上打开文本文件

Open text file on a FTP account with PHP

我正在尝试读取 FTP 帐户上的 CSV 文件,但我用于其他帐户的相同代码不再有效。

这个新的 FTP 帐户,例如,当我使用 FileZilla 连接到它时,会显示 window 说明证书的内容。我必须同意,我可以通过程序正常访问 FTP 文件。我想这个证书的东西是我的问题的原因。

这是我正在使用的代码:

$filename = "ftp://$user:$pass@$host/filename.csv";

 $fh = fopen($filename, "r");

 while (!feof($fh)) {
    $line = fgets($fh);
    var_dump($line);
 }
 fclose($fh);

有没有办法更改我的代码以考虑这个涉及证书的 FTP 帐户的要求?

我目前没有要测试的服务器,但要在使用流包装器时允许无效证书(我认为这是问题所在),您需要创建一个适当的 stream context and pass it as fopen()'s 4th argument. The context options that apply are FTP and SSL. You probably want to set verify_peerfalse

$context = stream_context_create([
    'ssl' => [
        'verify_peer'       => false,
        'verify_peer_name'  => false,
        'allow_self_signed' => true,
    ]
]);
$fh = fopen($filename, 'r', false, $context);