php-wrappers
High-performance wrappers for native FTP and SFTP functions.
Usage
<?php
use Wrappers\FtpStream;
FtpStream::register(); // Replace the built-in wrapper
var_dump(file_put_contents('ftp://host/lol.txt', 'Hello world'));
var_dump(file_get_contents('ftp://host/lol.txt'));
var_dump(filesize('ftp://host/lol.txt'));
FtpStream::unregister(); // Restore the built-in wrapper
?>
Why?
The default PHP ftp://
wrapper closes your connections immediately after use which has a side-effect of slowing down your scripts if doing multiple requests. This wrapper replacement holds your connections open (sessions) until the scripts terminates so you can transfer files at a much faster rate.
You can use almost all native PHP functions with this wrapper.
ftps://
and sftp://
are also supported with FtpsStream
and SftpStream
(for SFTP, you'll need to enable the ssh2
extension).
Performance
(Lower is better)
You can run benchmarks using tests/benchmark.php
.
Methods
<?php
var_dump(FtpStream::is_registered()); // Returns true if the wrapper is already registered
FtpStream::register(); // Register the wrapper
FtpStream::unregister(); // Restore the default wrapper
FtpStream::close_all(); // Closes all connections before the end of the script