Sample code for 30+ languages & platforms
PHP Extension

Get FTP Directory Listing Information

See more FTP Examples

_LANGUAGE_ example showing how to get information about files and subdirectories in the current remote FTP directory.

Chilkat PHP Extension Downloads

PHP Extension
<?php

include("chilkat.php");

$success = false;

// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

$ftp = new CkFtp2();

$ftp->put_Hostname('ftp.example.com');
$ftp->put_Username('login');
$ftp->put_Password('password');

// Connect and login to the FTP server.
$success = $ftp->Connect();
if ($success != true) {
    print $ftp->lastErrorText() . "\n";
    exit;
}

// The ListPattern property is our directory listing filter.
// The default value is "*", which includes everything.
print $ftp->listPattern() . "\n";

// To get file and sub-directory information, simply
// loop from 0 to ftp.GetDirCount() - 1

$n = $ftp->GetDirCount();
if ($n < 0) {
    print $ftp->lastErrorText() . "\n";
    exit;
}

if ($n > 0) {
    for ($i = 0; $i <= $n - 1; $i++) {

        // Display the filename
        print $ftp->getFilename($i) . "\n";

        // Display the file size (in bytes)
        print $ftp->GetSize($i) . "\n";

        // Is this a sub-directory?
        if ($ftp->GetIsDirectory($i) == true) {
            print '.. this is a sub-directory' . "\n";
        }

        print '--' . "\n";
    }

}

print '-----------------------------------' . "\n";

// Only files and directories
// matching the ListPattern are returned.
$ftp->put_ListPattern('*.asp');
$n = $ftp->GetDirCount();
if ($n < 0) {
    print $ftp->lastErrorText() . "\n";
    exit;
}

if ($n > 0) {
    for ($i = 0; $i <= $n - 1; $i++) {

        // Display the filename
        print $ftp->getFilename($i) . "\n";

        // Display the file size (in bytes)
        print $ftp->GetSize($i) . "\n";

        print '--' . "\n";
    }

}

$success = $ftp->Disconnect();

?>