Bandicoot
@Bandicoot
Вась-программист

Как построчно прочитать удаленный файл по FTP?

Есть файлы логов на сервере, коннект к нему идет по ФТП. Нужно периодически парсить эти файлы и заносить результаты в таблицу БД. Как правильно построчно прочитать удаленный файл на PHP?
  • Вопрос задан
  • 646 просмотров
Решения вопроса 3
alsopub
@alsopub
Попробуйте так же как с локальным файлом - fopen('ftp://...', '...'); далее чтение построчно.
Ограничения - php.net/manual/ru/wrappers.ftp.php
Пример построчного чтения - php.net/manual/ru/features.remote-files.php
Не проверял, но вроде должно работать.
Ответ написан
Комментировать
@Quieteroks
php программист
По сути вы открываете файл по ftp так же, как и обычный файл:
$file = fopen ("ftp://user:password@example.com/pub/file.txt", "r");

и дальше работаете как с обычным файлом.
Ответ написан
Комментировать
Bandicoot
@Bandicoot Автор вопроса
Вась-программист
В общем додумался сам:
$server = "xxx";
$username = 'xxx';
$password = 'xxx';
$dir = "xxx";

$ftp_conn = ftp_connect($server) or die("Could not connect to $server");
$login = ftp_login($ftp_conn, $username, $password);
$files = ftp_nlist($ftp_conn, $dir);

foreach ($files as $file) {
    $ext = pathinfo($file)['extension'];

    if ( $ext === 'log' ) {
        $path = "ftp://$username:$password@$server/$file";
        $file = fopen($path, "r");
        while ( ($line = fgets($file)) !== false ) {
            echo $line . "<br />";
        }

        break;
    }
}

ftp_close($ftp_conn);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
MaxDukov
@MaxDukov
впишусь в проект как SRE/DevOps.
построчно врядли. А вот блоками - вполне. через curl
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы