简体   繁体   中英

How to get list of files in FTP-server since specific date (command or cURL php)

I'm need to get list of files from FTP-server which last-modified date will be later than my specific date (files which was modified from this date).

Which way will be "cheaper" for this task? Using cURL library for PHP.

My version:

function since_date ($date, $folder = '')
{
    $files = [];
    $curl = curl_init();

    curl_setopt_array($curl, [
        CURLOPT_URL            => $folder . '/',
        CURLOPT_USERPWD        => 'user:password',
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_CUSTOMREQUEST  => 'LIST -t'
    ]);

    // Convert date to timestamp
    $limit = strtotime($date);

    // Get files list sorted by last-modification date
    if ($ls = curl_exec($curl)) {
        foreach (explode("\n", trim($ls, "\n")) as $line) {
            // Parse response line to array of values
            $line = preg_split('/\s+/', $line, 9);

            // Get each file timestamp and compare it with specified date
            if ($ts = strtotime(implode(' ', array_slice($line, -4, 3))) >= $limit) {
                $files[ end($line) ] = $ts;
            } else {
                // Got an older files...
                break;
            }
        }
    }

    curl_close($curl);
    return $files;
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM