Открыть текстовый файл на учетной записи FTP с PHP - PullRequest
0 голосов
/ 08 июня 2018

Я пытаюсь прочитать файл CSV на учетной записи FTP, но тот же код, который я использую для других учетных записей, больше не работает.

Эта новая учетная запись FTP, например, когда я подключаюсь к ней с помощью FileZilla, отображается окно с информацией о сертификате.Я должен согласиться, что я могу получить доступ к файлам FTP через программу.Я полагаю, что это свидетельство является причиной моей проблемы.

Это код, который я использую:

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

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

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

Есть ли способ изменить мой код, чтобы учесть требования этой учетной записи FTP, которая включает сертификат?

1 Ответ

0 голосов
/ 08 июня 2018

В настоящее время у меня нет сервера для тестирования, но для разрешения недействительных сертификатов (я полагаю, что это вопрос) при использовании потоковых упаковщиков необходимо создать правильный потоковый контекст и передать его как fopen () * 4-й аргумент .Применяются следующие параметры контекста: FTP и SSL .Возможно, вы захотите установить verify_peer на false.

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