Userland FTP protocol implementation, no dependency on PHP's ftp extension.
use peer\ftp\{FtpConnection, FtpTransfer};
use io\File;
$c= (new FtpConnection('ftp://user:pass@example.com/'))->connect();
// Upload logo.png to the connection's root directory
$c->rootDir()->file('logo.png')->uploadFrom(new File('logo.png'));
// Upload from a stream using ASCII mode
$c->rootDir()->file('README.md')->uploadFrom(
new MemoryInputStream('Read me first!'),
FtpTransfer::ASCII
);
$c->close();
use peer\ftp\FtpConnection;
$c= (new FtpConnection('ftp://user:pass@example.com/'))->connect();
// List root directory's contents
foreach ($c->rootDir()->entries() as $entry) {
Console::writeLine('- ', $entry);
}
$c->close();