* */ function ftp_delete($ftp_stream, string $path): void { error_clear_last(); $result = \ftp_delete($ftp_stream, $path); if ($result === false) { throw FtpException::createFromPhpError(); } } /** * ftp_fget retrieves remote_file * from the FTP server, and writes it to the given file pointer. * * @param resource $ftp_stream The link identifier of the FTP connection. * @param resource $handle An open file pointer in which we store the data. * @param string $remote_file The remote file path. * @param int $mode The transfer mode. Must be either FTP_ASCII or * FTP_BINARY. * @param int $resumepos The position in the remote file to start downloading from. * @throws FtpException * */ function ftp_fget($ftp_stream, $handle, string $remote_file, int $mode = FTP_BINARY, int $resumepos = 0): void { error_clear_last(); $result = \ftp_fget($ftp_stream, $handle, $remote_file, $mode, $resumepos); if ($result === false) { throw FtpException::createFromPhpError(); } } /** * ftp_fput uploads the data from a file pointer * to a remote file on the FTP server. * * @param resource $ftp_stream The link identifier of the FTP connection. * @param string $remote_file The remote file path. * @param resource $handle An open file pointer on the local file. Reading stops at end of file. * @param int $mode The transfer mode. Must be either FTP_ASCII or * FTP_BINARY. * @param int $startpos The position in the remote file to start uploading to. * @throws FtpException * */ function ftp_fput($ftp_stream, string $remote_file, $handle, int $mode = FTP_BINARY, int $startpos = 0): void { error_clear_last(); $result = \ftp_fput($ftp_stream, $remote_file, $handle, $mode, $startpos); if ($result === false) { throw FtpException::createFromPhpError(); } } /** * ftp_get retrieves a remote file from the FTP server, * and saves it into a local file. * * @param resource $ftp_stream The link identifier of the FTP connection. * @param string $local_file The local file path (will be overwritten if the file already exists). * @param string $remote_file The remote file path. * @param int $mode The transfer mode. Must be either FTP_ASCII or * FTP_BINARY. * @param int $resumepos The position in the remote file to start downloading from. * @throws FtpException * */ function ftp_get($ftp_stream, string $local_file, string $remote_file, int $mode = FTP_BINARY, int $resumepos = 0): void { error_clear_last(); $result = \ftp_get($ftp_stream, $local_file, $remote_file, $mode, $resumepos); if ($result === false) { throw FtpException::createFromPhpError(); } } /** * Logs in to the given FTP stream. * * @param resource $ftp_stream The link identifier of the FTP connection. * @param string $username The username (USER). * @param string $password The password (PASS). * @throws FtpException * */ function ftp_login($ftp_stream, string $username, string $password): void { error_clear_last(); $result = \ftp_login($ftp_stream, $username, $password); if ($result === false) { throw FtpException::createFromPhpError(); } } /** * Creates the specified directory on the FTP server. * * @param resource $ftp_stream The link identifier of the FTP connection. * @param string $directory The name of the directory that will be created. * @return string Returns the newly created directory name on success. * @throws FtpException * */ function ftp_mkdir($ftp_stream, string $directory): string { error_clear_last(); $result = \ftp_mkdir($ftp_stream, $directory); if ($result === false) { throw FtpException::createFromPhpError(); } return $result; } /** * * * @param resource $ftp_stream The link identifier of the FTP connection. * @param string $directory The directory to be listed. * @return array Returns an array of arrays with file infos from the specified directory on success. * @throws FtpException * */ function ftp_mlsd($ftp_stream, string $directory): array { error_clear_last(); $result = \ftp_mlsd($ftp_stream, $directory); if ($result === false) { throw FtpException::createFromPhpError(); } return $result; } /** * * * @param resource $ftp_stream The link identifier of the FTP connection. * @param string $directory The directory to be listed. This parameter can also include arguments, eg. * ftp_nlist($conn_id, "-la /your/dir"); * Note that this parameter isn't escaped so there may be some issues with * filenames containing spaces and other characters. * @return array Returns an array of filenames from the specified directory on success. * @throws FtpException * */ function ftp_nlist($ftp_stream, string $directory): array { error_clear_last(); $result = \ftp_nlist($ftp_stream, $directory); if ($result === false) { throw FtpException::createFromPhpError(); } return $result; } /** * ftp_pasv turns on or off passive mode. In * passive mode, data connections are initiated by the client, * rather than by the server. * It may be needed if the client is behind firewall. * * Please note that ftp_pasv can only be called after a * successful login or otherwise it will fail. * * @param resource $ftp_stream The link identifier of the FTP connection. * @param bool $pasv If TRUE, the passive mode is turned on, else it's turned off. * @throws FtpException * */ function ftp_pasv($ftp_stream, bool $pasv): void { error_clear_last(); $result = \ftp_pasv($ftp_stream, $pasv); if ($result === false) { throw FtpException::createFromPhpError(); } } /** * ftp_put stores a local file on the FTP server. * * @param resource $ftp_stream The link identifier of the FTP connection. * @param string $remote_file The remote file path. * @param string $local_file The local file path. * @param int $mode The transfer mode. Must be either FTP_ASCII or * FTP_BINARY. * @param int $startpos The position in the remote file to start uploading to. * @throws FtpException * */ function ftp_put($ftp_stream, string $remote_file, string $local_file, int $mode = FTP_BINARY, int $startpos = 0): void { error_clear_last(); $result = \ftp_put($ftp_stream, $remote_file, $local_file, $mode, $startpos); if ($result === false) { throw FtpException::createFromPhpError(); } } /** * * * @param resource $ftp_stream The link identifier of the FTP connection. * @return string Returns the current directory name. * @throws FtpException * */ function ftp_pwd($ftp_stream): string { error_clear_last(); $result = \ftp_pwd($ftp_stream); if ($result === false) { throw FtpException::createFromPhpError(); } return $result; } /** * ftp_rename renames a file or a directory on the FTP * server. * * @param resource $ftp_stream The link identifier of the FTP connection. * @param string $oldname The old file/directory name. * @param string $newname The new name. * @throws FtpException * */ function ftp_rename($ftp_stream, string $oldname, string $newname): void { error_clear_last(); $result = \ftp_rename($ftp_stream, $oldname, $newname); if ($result === false) { throw FtpException::createFromPhpError(); } } /** * Removes the specified directory on the FTP server. * * @param resource $ftp_stream The link identifier of the FTP connection. * @param string $directory The directory to delete. This must be either an absolute or relative * path to an empty directory. * @throws FtpException * */ function ftp_rmdir($ftp_stream, string $directory): void { error_clear_last(); $result = \ftp_rmdir($ftp_stream, $directory); if ($result === false) { throw FtpException::createFromPhpError(); } } /** * ftp_site sends the given SITE * command to the FTP server. * * SITE commands are not standardized, and vary from server * to server. They are useful for handling such things as file permissions and * group membership. * * @param resource $ftp_stream The link identifier of the FTP connection. * @param string $command The SITE command. Note that this parameter isn't escaped so there may * be some issues with filenames containing spaces and other characters. * @throws FtpException * */ function ftp_site($ftp_stream, string $command): void { error_clear_last(); $result = \ftp_site($ftp_stream, $command); if ($result === false) { throw FtpException::createFromPhpError(); } } /** * ftp_ssl_connect opens an explicit SSL-FTP connection to the * specified host. That implies that * ftp_ssl_connect will succeed even if the server is not * configured for SSL-FTP, or its certificate is invalid. Only when * ftp_login is called, the client will send the * appropriate AUTH FTP command, so ftp_login will fail in * the mentioned cases. * * @param string $host The FTP server address. This parameter shouldn't have any trailing * slashes and shouldn't be prefixed with ftp://. * @param int $port This parameter specifies an alternate port to connect to. If it is * omitted or set to zero, then the default FTP port, 21, will be used. * @param int $timeout This parameter specifies the timeout for all subsequent network operations. * If omitted, the default value is 90 seconds. The timeout can be changed and * queried at any time with ftp_set_option and * ftp_get_option. * @return resource Returns a SSL-FTP stream on success. * @throws FtpException * */ function ftp_ssl_connect(string $host, int $port = 21, int $timeout = 90) { error_clear_last(); $result = \ftp_ssl_connect($host, $port, $timeout); if ($result === false) { throw FtpException::createFromPhpError(); } return $result; } /** * Returns the system type identifier of the remote FTP server. * * @param resource $ftp_stream The link identifier of the FTP connection. * @return string Returns the remote system type. * @throws FtpException * */ function ftp_systype($ftp_stream): string { error_clear_last(); $result = \ftp_systype($ftp_stream); if ($result === false) { throw FtpException::createFromPhpError(); } return $result; }