Формат вывода списка FTP не был стандартизирован для синтаксического анализа компьютера, поэтому, если вы хотите поддерживать все возможные серверы FTP, вам нужно придумать собственный синтаксический анализатор.
Но давайте начнем с самого простого способа: PHP поддерживает FTP-упаковщик . Начиная с PHP 5.1, вы можете использовать filemtime()
для получения файла модификации удаленного файла, используя ftp://user:password@host/path/file
в качестве аргумента.
Вы также можете попробовать использовать curl_getinfo()
расширения PHP cURL.
Если это не сработает из-за того, что ваш FTP-сервер имеет AIX, VMS, EBCDIC или другую «экзотическую» природу, вы можете проанализировать список каталогов вручную.
Прежде всего, если вам очень повезло, FTP-сервер поддерживает команду MLST
или MLSD
. Вы можете выдать их, используя ftp_raw()
в PHP. Вывод объясняется в RFC 3659 . Дата может быть легко проанализирована и возвращается в UTC.
Если вам повезло меньше, вам нужно вернуться к устаревшей команде LIST
, используемой ftp_rawlist()
. Не существует стандарта на то, как выглядит вывод, поэтому вам нужна эвристика. FileZilla очень хорош в работе с устаревшими FTP-серверами. Если вам действительно нужен анализатор и у вас есть какое-то время, просто перенесите синтаксический анализатор каталогов FileZilla на PHP.