By Melih Ucar. (http://www.melihucar.net/)
licensed under the MIT licenses
Connection to FTP Host :
$ftp = new FTPClient();
$ftp->connect($host, $ssl, $port, $timeout);
$ftp->login($username, $password);
// This uses passive mode
$ftp->passive();
// If you want to disable using passive mode then
$ftp->passive(false);
// This uses binary mode, required for downloading binaries like zip
$ftp->binary(true);
// standard is false
###Changing Directory :###
// You can use fullpath to change dir
$ftp->changeDirectory('/root_dir/sub_dir');
// or you can use method chaining
$ftp->changeDirectory('/root_dir')->changeDirectory('sub_dir');
###Change To Parent Directory :###
$ftp->changeDirectory('/root_dir/sub_dir');
$ftp->parentDirectory(); // now we are in /root_dir
###Getting Current Directory :###
// will return current path as string
$ftp->getDirectory();
###Creating Directory :###
// creates a directory in current path
$ftp->createDirectory($directoryName);
###Removing Directory :###
$ftp->removeDirectory($directoryName);
###Getting Directory List :###
// returns directory list as array
$ftp->listDirectory();
###Getting Directory List :###
// executes the FTP LIST command, and returns the result as an array
$ftp->rawlistDirectory($parameters, $recursive);
###Deleting File :###
$ftp->delete($filename);
###Returns file size (bytes) :###
$ftp->size($filename);
###Returns last modified time :###
// returns unix timestamp
$ftp->modifiedTime($filename);
// returns formated
$ftp->modifiedTime($filename, $format);
###Renaming files or folders :###
$ftp->rename($current, $new);
###Downloading a file :###
// Downloads a file from remote host
$ftp->get($localFile, $remoteFile);
// Downloads file to an open file
$ftp->fget($handle, $remoteFile);
###Uploading a file :###
// Uploading local file to remote host
$ftp->put($remoteFile, $localFile);
// Uploading from an open file
$ftp->fput($remoteFile, $handle);
###Getting server options :###
$ftp->getOption(FTPClient::TIMEOUT_SEC);
###Setting server options :###
$ftp->setOption(FTPClient::TIMEOUT_SEC, 30);
###Allocating space for uploading file :###
$ftp->allocate($filesize);
###Changing file and directory permissions :###
$ftp->chmod($mode, $filename);
###Running custom command on remote server :###
$ftp->exec($command);
###Error Handling :### Class throws exception if opetarion fails. So simply use try-catch blocks.
try {
$ftp = new FTPClient();
$ftp->connect($host, $ssl, $port, $timeout);
$ftp->loginlogin($username, $password);
} catch (Exception $e) {
// we got the error!
}
Did you find a bug or do you know a better way to do it? Simply just fork and fix it. Then send a pull request.