PHP
Chilkat2 PHP
Get FTP Directory Listing as XML
See more FTP Examples
Demonstrates how to call GetXmlDirListing and parse the results.Chilkat PHP Downloads
<?php
use Chilkat2\Ftp2;
use Chilkat2\Xml;
// This example assumes Chilkat Ftp2 to have been previously unlocked.
// See Unlock Ftp2 for sample code.
$ftp = new Ftp2();
$ftp->Hostname = 'www.my-ftp-server.com';
$ftp->Username = 'mFtpLogin';
$ftp->Password = 'myFtpPassword';
// Connect to the FTP server.
try {
$ftp->ConnectOnly();
// Authenticate with the FTP server.
$ftp->LoginAfterConnectOnly();
// Retrieve (in XML format) the HOME directory of this FTP account.
$xmlListing = $ftp->GetXmlDirListing('*.*');
} catch (\Chilkat2\Exception $e) {
echo $e->getMessage(), "\n";
exit;
}
// Now load the XML and parse it..
$xml = new Xml();
$xml->LoadXml($xmlListing);
echo $xml->GetXml(), "\n";
// Iterate over the XML...
$i = 0;
$numEntries = $xml->NumChildren;
while ($i < $numEntries) {
$xEntry = $xml->GetChild($i);
if ($xEntry->TagEquals('dir')) {
echo 'Directory: ', $xEntry->Content, "\n";
} else {
$sz = $xEntry->GetChildIntValue('size');
echo 'File: ', $xEntry->GetChildContent('name'), ', size: ', $sz, "\n";
$xLastMod = $xEntry->FindChild('lastModTime');
if ($xLastMod !== null) {
$month = $xLastMod->GetAttrValueInt('m');
$year = $xLastMod->GetAttrValueInt('y');
$day = $xLastMod->GetAttrValueInt('d');
echo ' YYYY-MM-DD: ', $year, '-', $month, '-', $day, "\n";
}
}
$i = $i + 1;
}
$ftp->Disconnect();
echo "Success.\n";
/*
* Sample XML directory listing:
* <?xml version="1.0" encoding="utf-8" ?>
* <remoteDir>
* <dir>Desktop</dir>
* <dir>Documents</dir>
* <dir>Downloads</dir>
* <dir>Music</dir>
* <dir>Pictures</dir>
* <dir>Public</dir>
* <dir>Templates</dir>
* <dir>Videos</dir>
* <file>
* <name>c.py</name>
* <size>1244</size>
* <lastModTime full="20151009-000000" y="2015" d="9" m="10" hh="0" mm="0" ss="0" />
* </file>
* <file>
* <name>cacerts_linux</name>
* <size>177207</size>
* <lastModTime full="20140915-000000" y="2014" d="15" m="9" hh="0" mm="0" ss="0" />
* </file>
* <file>
* <name>empty.txt</name>
* <size>0</size>
* <lastModTime full="20150917-000000" y="2015" d="17" m="9" hh="0" mm="0" ss="0" />
* </file>
* <file>
* <name>hamlet.xml</name>
* <size>279658</size>
* <lastModTime full="20160917-084100" y="2016" d="17" m="9" hh="8" mm="41" ss="0" />
* </file>
* </remoteDir>
*
*
*/