PHP FTP
This FTP extension provides to access files from the server through an FTP client access.
An example to understand the FTP
<?php
// set up basic connection
$conn_id = ftp_connect($ftp_server);
// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
// check connection
if ((!$conn_id) || (!$login_result)) {
echo "FTP connection has failed!";
echo "Attempted to connect to $ftp_server for user $ftp_user_name";
exit;
} else {
echo "Connected to $ftp_server, for user $ftp_user_name";
}
// upload the file
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);
// check upload status
if (!$upload) {
echo "FTP upload has failed!";
} else {
echo "Uploaded $source_file to $ftp_server as $destination_file";
}
// close the FTP stream
ftp_close($conn_id);
?>
Requirements
No external libraries are needed to build this extension.
Installation
In order to use FTP functions with your PHP configuration, you should add the --enable-ftp option when installing PHP.
The Windows version of PHP 5 has built-in support for this extension.
You do not need to load any additional extensions in order to use these functions.
As of PHP 7.0.0 on Windows this extension is always built as a shared extension and as such has to be enabled in php.ini.
Run-time Configuration
This extension has no configuration directives defined in php.ini.
Resource Types
This extension uses one resource type, which is the link identifier of the FTP connection, returned by ftp_connect() or ftp_ssl_connect().
Predefined Constants
PHP FTP extension also provided some predefined constants.
In order to use this extension has either been compiled into PHP or dynamically loaded at runtime.
- FTP_ASCII (integer)
- FTP_AUTOSEEK (integer)
- See ftp_set_option() for information.
- FTP_AUTORESUME (integer)
- Automatically determine resume position and start position for GET and PUT requests (only works if FTP_AUTOSEEK is enabled)
- FTP_FAILED (integer)
- The asynchronous transfer has failed
- FTP_FINISHED (integer)
- The asynchronous transfer has finished
- FTP_MOREDATA (integer)
- An asynchronous transfer is still active
- FTP_TEXT (integer)
- Alias of FTP_ASCII.
- FTP_BINARY (integer)
- FTP_IMAGE (integer)
- Alias of FTP_BINARY.
- FTP_TIMEOUT_SEC (integer)
- See ftp_set_option() for information.
FTP Functions
- ftp_alloc — Allocates space for a file to be uploaded
- ftp_append — Append content of a file another file on the FTP server
- ftp_cdup — Changes to the parent directory
- ftp_chdir — Changes the current directory on an FTP server
- ftp_chmod — Set permissions on a file via FTP
- ftp_close — Closes an FTP connection
- ftp_connect — Opens an FTP connection
- ftp_delete — Deletes a file on the FTP server
- ftp_exec — Requests execution of a command on the FTP server
- ftp_fget — Downloads a file from the FTP server and saves it to an open file
- ftp_fput — Uploads from an open file to the FTP server
- ftp_get_option — Retrieves various runtime behaviors of the current FTP stream
- ftp_get — Downloads a file from the FTP server
- ftp_login — Logs in to an FTP connection
- ftp_mdtm — Returns the last modified time of the given file
- ftp_mkdir — Creates a directory
- ftp_mlsd — Returns a list of files in the given directory
- ftp_nb_continue — Continues retrieving/sending a file (non-blocking)
- ftp_nb_fget — Retrieves a file from the FTP server and writes it to an open file (non-blocking)
- ftp_nb_fput — Stores a file from an open file to the FTP server (non-blocking)
- ftp_nb_get — Retrieves a file from the FTP server and writes it to a local file (non-blocking)
- ftp_nb_put — Stores a file on the FTP server (non-blocking)
- ftp_nlist — Returns a list of files in the given directory
- ftp_pasv — Turns passive mode on or off
- ftp_put — Uploads a file to the FTP server
- ftp_pwd — Returns the current directory name
- ftp_quit — Alias of ftp_close
- ftp_raw — Sends an arbitrary command to an FTP server
- ftp_rawlist — Returns a detailed list of files in the given directory
- ftp_rename — Renames a file or a directory on the FTP server
- ftp_rmdir — Removes a directory
- ftp_set_option — Set miscellaneous runtime FTP options
- ftp_site — Sends a SITE command to the server
- ftp_size — Returns the size of the given file
- ftp_ssl_connect — Opens a Secure SSL-FTP connection
- ftp_systype — Returns the system type identifier of the remote FTP server