PHP Extension
PHP Extension
Get FTP Directory Listing as XML
See more FTP Examples
Demonstrates how to call GetXmlDirListing and parse the results.Chilkat PHP Extension Downloads
<?php
include("chilkat.php");
$success = false;
// This example assumes Chilkat Ftp2 to have been previously unlocked.
// See Unlock Ftp2 for sample code.
$ftp = new CkFtp2();
$ftp->put_Hostname('www.my-ftp-server.com');
$ftp->put_Username('mFtpLogin');
$ftp->put_Password('myFtpPassword');
// Connect to the FTP server.
$success = $ftp->ConnectOnly();
if ($success != true) {
print $ftp->lastErrorText() . "\n";
exit;
}
// Authenticate with the FTP server.
$success = $ftp->LoginAfterConnectOnly();
if ($success != true) {
print $ftp->lastErrorText() . "\n";
exit;
}
// Retrieve (in XML format) the HOME directory of this FTP account.
$xmlListing = $ftp->getXmlDirListing('*.*');
if ($ftp->get_LastMethodSuccess() != true) {
print $ftp->lastErrorText() . "\n";
exit;
}
// Now load the XML and parse it..
$xml = new CkXml();
$xml->LoadXml($xmlListing);
print $xml->getXml() . "\n";
// Iterate over the XML...
$i = 0;
$numEntries = $xml->get_NumChildren();
while ($i < $numEntries) {
// xEntry is a CkXml
$xEntry = $xml->GetChild($i);
if ($xEntry->TagEquals('dir') == true) {
print 'Directory: ' . $xEntry->content() . "\n";
}
else {
$sz = $xEntry->GetChildIntValue('size');
print 'File: ' . $xEntry->getChildContent('name') . ', size: ' . $sz . "\n";
// xLastMod is a CkXml
$xLastMod = $xEntry->FindChild('lastModTime');
if ($xEntry->get_LastMethodSuccess() == true) {
$month = $xLastMod->GetAttrValueInt('m');
$year = $xLastMod->GetAttrValueInt('y');
$day = $xLastMod->GetAttrValueInt('d');
print ' YYYY-MM-DD: ' . $year . '-' . $month . '-' . $day . "\n";
}
}
$i = $i + 1;
}
$ftp->Disconnect();
print '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>
//
//
?>