Documentation

Horde_Vfs_Ftp extends Horde_Vfs_Base
in package

VFS implementation for an FTP server.

Required values for $params:

  • username: (string) The username with which to connect to the FTP server.
  • password: (string) The password with which to connect to the FTP server.
  • hostspec: (string) The FTP server to connect to.

Optional values for $params:

  • lsformat: (string) The return formatting from the 'ls' command. Possible values: 'aix', 'standard' (default).
  • maplocalids: (boolean) If true and the POSIX extension is available, the driver will map the user and group IDs returned from the FTP server with the local IDs from the local password file. This is useful only if the FTP server is running on localhost or if the local user/group IDs are identical to the remote FTP server.
  • pasv: (boolean) If true, connection will be set to passive mode.
  • port: (integer) The port used to connect to the ftp server if other than 21 (FTP default).
  • ssl: (boolean) If true, and PHP had been compiled with OpenSSL support, TLS transport-level encryption will be negotiated with the server.
  • timeout: (integer) The timeout for the server.
  • type: (string) The type of the remote FTP server. Possible values: 'unix', 'win', 'netware' By default, we attempt to auto-detect type.

Copyright 2002-2017 Horde LLC (http://www.horde.org/) Copyright 2002-2007 Michael Varghese mike.varghese@ascellatech.com

See the enclosed file LICENSE for license information (LGPL). If you did not receive this file, see http://www.horde.org/licenses/lgpl21.

Tags
author

Chuck Hagenbuch chuck@horde.org

author

Michael Varghese mike.varghese@ascellatech.com

Table of Contents

$_credentials  : array<string|int, mixed>
List of additional credentials required for this VFS backend.
$_features  : array<string|int, mixed>
List of features that the VFS driver supports.
$_gids  : array<string|int, mixed>
Local cache array for group IDs.
$_params  : array<string|int, mixed>
Hash containing connection parameters.
$_permissions  : array<string|int, mixed>
List of permissions and if they can be changed in this VFS backend.
$_stream  : resource
Variable holding the connection to the ftp server.
$_type  : string
The FTP server type.
$_uids  : array<string|int, mixed>
Local cache array for user IDs.
$_vfsSize  : int
The current size, in bytes, of the VFS tree.
__construct()  : mixed
Constructor.
autocreatePath()  : mixed
Automatically creates any necessary parent directories in the specified $path.
changePermissions()  : mixed
Changes permissions for an item on the VFS.
checkCredentials()  : mixed
Checks the credentials that we have by calling _connect(), to see if there is a valid login.
copy()  : mixed
Copies a file through the backend.
createFolder()  : mixed
Creates a folder on the VFS.
delete()  : mixed
Alias to deleteFile()
deleteFile()  : mixed
Deletes a file from the VFS.
deleteFolder()  : mixed
Deletes a folder from the VFS.
emptyFolder()  : mixed
Recursively remove all files and subfolders from the given folder.
exists()  : bool
Returns if a given file or folder exists in a folder.
getCurrentDirectory()  : string
Returns the current working directory on the FTP server.
getFolderSize()  : int
Returns the size of a folder.
getModifiablePermissions()  : array<string|int, mixed>
Returns an array specifying what permissions are changeable for this VFS implementation.
getParam()  : mixed
Returns configuration parameters.
getQuota()  : mixed
Get quota information (used/allocated), in bytes.
getRequiredCredentials()  : array<string|int, mixed>
Returns the list of additional credentials required, if any.
getVFSSize()  : int
Returns the size of the VFS item.
hasFeature()  : bool
Returns whether the drivers supports a certain feature.
isFolder()  : bool
Checks if a given item is a folder.
listFolder()  : array<string|int, mixed>
Returns a file list of the directory passed in.
move()  : mixed
Moves a file through the backend.
read()  : string
Retrieves a file from the VFS.
readByteRange()  : string
Retrieves a part of a file from the VFS. Particularly useful when reading large files which would exceed the PHP memory limits if they were stored in a string.
readFile()  : string
Retrieves a file from the VFS as an on-disk local file.
readStream()  : resource
Open a stream to a file in the VFS.
rename()  : mixed
Renames a file in the VFS.
setParams()  : mixed
Sets configuration parameters.
setQuota()  : mixed
Sets the VFS quota limit.
setQuotaRoot()  : mixed
Sets the VFS quota root.
size()  : int
Returns the size of a file.
write()  : mixed
Stores a file in the VFS.
writeData()  : mixed
Stores a file in the VFS from raw data.
_checkDestination()  : mixed
Checks whether a source and destination directory are the same.
_checkQuotaDelete()  : mixed
Checks the quota when preparing to delete data.
_checkQuotaWrite()  : mixed
Checks the quota when preparing to write data.
_connect()  : mixed
Attempts to open a connection to the FTP server.
_copyRecursive()  : mixed
Recursively copies a directory through the backend.
_ensureSeekable()  : mixed
_filterMatch()  : bool
Returns whether or not a file or directory name matches an filter element.
_getDataSize()  : int
Return the size of $data.
_getPath()  : mixed
Returns the full path of an item.
_listFolder()  : array<string|int, mixed>
Returns an unsorted file list of the specified directory.
_setPath()  : mixed
Changes the current directory on the server.

Properties

$_credentials

List of additional credentials required for this VFS backend.

protected array<string|int, mixed> $_credentials = array('username', 'password')

$_features

List of features that the VFS driver supports.

protected array<string|int, mixed> $_features = array('readByteRange' => \false)

$_gids

Local cache array for group IDs.

protected array<string|int, mixed> $_gids = array()

$_params

Hash containing connection parameters.

protected array<string|int, mixed> $_params = array('port' => 21)

$_permissions

List of permissions and if they can be changed in this VFS backend.

protected array<string|int, mixed> $_permissions = array('owner' => array('read' => \true, 'write' => \true, 'execute' => \true), 'group' => array('read' => \true, 'write' => \true, 'execute' => \true), 'all' => array('read' => \true, 'write' => \true, 'execute' => \true))

$_stream

Variable holding the connection to the ftp server.

protected resource $_stream = \false

$_type

The FTP server type.

protected string $_type

$_uids

Local cache array for user IDs.

protected array<string|int, mixed> $_uids = array()

$_vfsSize

The current size, in bytes, of the VFS tree.

protected int $_vfsSize = \null

Methods

__construct()

Constructor.

public __construct([array<string|int, mixed> $params = array() ]) : mixed
Parameters
$params : array<string|int, mixed> = array()

A hash containing connection parameters.

Return values
mixed

autocreatePath()

Automatically creates any necessary parent directories in the specified $path.

public autocreatePath(string $path) : mixed
Parameters
$path : string

The VFS path to autocreate.

Tags
throws
Horde_Vfs_Exception
Return values
mixed

changePermissions()

Changes permissions for an item on the VFS.

public changePermissions(string $path, string $name, string $permission) : mixed
Parameters
$path : string

The parent folder of the item.

$name : string

The name of the item.

$permission : string

The permission to set in octal notation.

Tags
throws
Horde_Vfs_Exception
Return values
mixed

checkCredentials()

Checks the credentials that we have by calling _connect(), to see if there is a valid login.

public checkCredentials() : mixed
Tags
throws
Horde_Vfs_Exception
Return values
mixed

copy()

Copies a file through the backend.

public copy(string $path, string $name, string $dest[, bool $autocreate = false ]) : mixed
Parameters
$path : string

The path of the original file.

$name : string

The name of the original file.

$dest : string

The name of the destination directory.

$autocreate : bool = false

Automatically create directories?

Tags
throws
Horde_Vfs_Exception
Return values
mixed

createFolder()

Creates a folder on the VFS.

public createFolder(string $path, string $name) : mixed
Parameters
$path : string

The parent folder.

$name : string

The name of the new folder.

Tags
throws
Horde_Vfs_Exception
Return values
mixed

delete()

Alias to deleteFile()

public delete(mixed $path, mixed $name) : mixed
Parameters
$path : mixed
$name : mixed
Return values
mixed

deleteFile()

Deletes a file from the VFS.

public deleteFile(string $path, string $name) : mixed
Parameters
$path : string

The path to delete the file from.

$name : string

The filename to delete.

Tags
throws
Horde_Vfs_Exception
Return values
mixed

deleteFolder()

Deletes a folder from the VFS.

public deleteFolder(string $path, string $name[, bool $recursive = false ]) : mixed
Parameters
$path : string

The parent folder.

$name : string

The name of the folder to delete.

$recursive : bool = false

Force a recursive delete?

Tags
throws
Horde_Vfs_Exception
Return values
mixed

emptyFolder()

Recursively remove all files and subfolders from the given folder.

public emptyFolder(string $path) : mixed
Parameters
$path : string

The path of the folder to empty.

Tags
throws
Horde_Vfs_Exception
Return values
mixed

exists()

Returns if a given file or folder exists in a folder.

public exists(string $path, string $name) : bool
Parameters
$path : string

The path to the folder.

$name : string

The file or folder name.

Return values
bool

True if it exists, false otherwise.

getCurrentDirectory()

Returns the current working directory on the FTP server.

public getCurrentDirectory() : string
Tags
throws
Horde_Vfs_Exception
Return values
string

The current working directory.

getFolderSize()

Returns the size of a folder.

public getFolderSize([string $path = null ]) : int
Parameters
$path : string = null

The path of the folder.

Tags
throws
Horde_Vfs_Exception
Return values
int

The size of the folder, in bytes.

getModifiablePermissions()

Returns an array specifying what permissions are changeable for this VFS implementation.

public getModifiablePermissions() : array<string|int, mixed>
Return values
array<string|int, mixed>

Changeable permisions.

getParam()

Returns configuration parameters.

public getParam(string $name) : mixed
Parameters
$name : string

The parameter to return.

Return values
mixed

The parameter value or null if it doesn't exist.

getQuota()

Get quota information (used/allocated), in bytes.

public getQuota() : mixed
Tags
throws
Horde_Vfs_Exception
Return values
mixed

An associative array.

'limit' = Maximum quota allowed
'usage' = Currently used portion of quota (in bytes)

getRequiredCredentials()

Returns the list of additional credentials required, if any.

public getRequiredCredentials() : array<string|int, mixed>
Return values
array<string|int, mixed>

Credential list.

getVFSSize()

Returns the size of the VFS item.

public getVFSSize() : int
Return values
int

The size, in bytes, of the VFS item.

hasFeature()

Returns whether the drivers supports a certain feature.

public hasFeature(string $feature) : bool
Parameters
$feature : string

A feature name. See for a list of possible features.

Return values
bool

True if the feature is supported.

isFolder()

Checks if a given item is a folder.

public isFolder(string $path, string $name) : bool
Parameters
$path : string

The parent folder.

$name : string

The item name.

Return values
bool

True if it is a folder, false otherwise.

listFolder()

Returns a file list of the directory passed in.

public listFolder(string $path[, string|array<string|int, mixed> $filter = null ][, bool $dotfiles = true ][, bool $dironly = false ][, bool $recursive = false ]) : array<string|int, mixed>
Parameters
$path : string

The path of the directory.

$filter : string|array<string|int, mixed> = null

Regular expression(s) to filter file/directory name on.

$dotfiles : bool = true

Show dotfiles?

$dironly : bool = false

Show only directories?

$recursive : bool = false

Return all directory levels recursively?

Tags
todo

Move all but $path to an $opts argument.

throws
Horde_Vfs_Exception
Return values
array<string|int, mixed>

File list.

move()

Moves a file through the backend.

public move(string $path, string $name, string $dest[, bool $autocreate = false ]) : mixed
Parameters
$path : string

The path of the original file.

$name : string

The name of the original file.

$dest : string

The destination file name.

$autocreate : bool = false

Automatically create directories?

Tags
throws
Horde_Vfs_Exception
Return values
mixed

read()

Retrieves a file from the VFS.

public read(string $path, string $name) : string
Parameters
$path : string

The pathname to the file.

$name : string

The filename to retrieve.

Return values
string

The file data.

readByteRange()

Retrieves a part of a file from the VFS. Particularly useful when reading large files which would exceed the PHP memory limits if they were stored in a string.

public readByteRange(string $path, string $name, int &$offset, int $length, int &$remaining) : string
Parameters
$path : string

The pathname to the file.

$name : string

The filename to retrieve.

$offset : int

The offset of the part. (The new offset will be stored in here).

$length : int

The length of the part. If the length = -1, the whole part after the offset is retrieved. If more bytes are given as exists after the given offset. Only the available bytes are read.

$remaining : int

The bytes that are left, after the part that is retrieved.

Tags
abstract
throws
Horde_Vfs_Exception
Return values
string

The file data.

readFile()

Retrieves a file from the VFS as an on-disk local file.

public readFile(string $path, string $name) : string

This function provides a file on local disk with the data of a VFS file in it. This file cannot be modified! The behavior if you do modify it is undefined. It will be removed at the end of the request.

Parameters
$path : string

The pathname to the file.

$name : string

The filename to retrieve.

Tags
throws
Horde_Vfs_Exception
Return values
string

A local filename.

readStream()

Open a stream to a file in the VFS.

public readStream(string $path, string $name) : resource
Parameters
$path : string

The pathname to the file.

$name : string

The filename to retrieve.

Tags
throws
Horde_Vfs_Exception
Return values
resource

The stream.

rename()

Renames a file in the VFS.

public rename(string $oldpath, string $oldname, string $newpath, string $newname) : mixed
Parameters
$oldpath : string

The old path to the file.

$oldname : string

The old filename.

$newpath : string

The new path of the file.

$newname : string

The new filename.

Tags
throws
Horde_Vfs_Exception
Return values
mixed

setParams()

Sets configuration parameters.

public setParams([array<string|int, mixed> $params = array() ]) : mixed
Parameters
$params : array<string|int, mixed> = array()

An associative array with parameter names as keys.

Return values
mixed

setQuota()

Sets the VFS quota limit.

public setQuota(int $quota[, int $metric = Horde_Vfs::QUOTA_METRIC_BYTE ]) : mixed
Parameters
$quota : int

The limit to apply.

$metric : int = Horde_Vfs::QUOTA_METRIC_BYTE

The metric to multiply the quota into.

Return values
mixed

setQuotaRoot()

Sets the VFS quota root.

public setQuotaRoot(string $dir) : mixed
Parameters
$dir : string

The root directory for the quota determination.

Return values
mixed

size()

Returns the size of a file.

public size(string $path, string $name) : int
Parameters
$path : string

The path of the file.

$name : string

The filename.

Tags
throws
Horde_Vfs_Exception
Return values
int

The size of the file in bytes.

write()

Stores a file in the VFS.

public write(string $path, string $name, string $tmpFile[, bool $autocreate = false ]) : mixed
Parameters
$path : string

The path to store the file in.

$name : string

The filename to use.

$tmpFile : string

The temporary file containing the data to be stored.

$autocreate : bool = false

Automatically create directories?

Tags
throws
Horde_Vfs_Exception
Return values
mixed

writeData()

Stores a file in the VFS from raw data.

public writeData(string $path, string $name, string|resource $data[, bool $autocreate = false ]) : mixed
Parameters
$path : string

The path to store the file in.

$name : string

The filename to use.

$data : string|resource

The data as a string or stream resource. Resources allowed @since 2.4.0

$autocreate : bool = false

Automatically create directories?

Tags
throws
Horde_Vfs_Exception
Return values
mixed

_checkDestination()

Checks whether a source and destination directory are the same.

protected _checkDestination(string $path, string $dest) : mixed
Parameters
$path : string

A source path.

$dest : string

A destination path.

Tags
throws
Horce_Vfs_Exception

of both paths are the same.

Return values
mixed

_checkQuotaDelete()

Checks the quota when preparing to delete data.

protected _checkQuotaDelete(string $path, string $name) : mixed
Parameters
$path : string

The path the file is located in.

$name : string

The filename.

Tags
throws
Horde_Vfs_Exception
Return values
mixed

_checkQuotaWrite()

Checks the quota when preparing to write data.

protected _checkQuotaWrite(string $mode, string $data[, string $path = null ][, string $name = null ]) : mixed
Parameters
$mode : string

Either 'string' or 'file'. If 'string', $data is the data to be written. If 'file', $data is the filename containing the data to be written.

$data : string

Either the data or the filename to the data.

$path : string = null

The path the file is located in.

$name : string = null

The filename.

Tags
throws
Horde_Vfs_Exception
Return values
mixed

_connect()

Attempts to open a connection to the FTP server.

protected _connect() : mixed
Tags
throws
Horde_Vfs_Exception
Return values
mixed

_copyRecursive()

Recursively copies a directory through the backend.

protected _copyRecursive(string $path, string $name, string $dest) : mixed
Parameters
$path : string

The path of the original file.

$name : string

The name of the original file.

$dest : string

The name of the destination directory.

Tags
throws
Horde_Vfs_Exception
Return values
mixed

_ensureSeekable()

protected _ensureSeekable(mixed $stream) : mixed
Parameters
$stream : mixed
Return values
mixed

_filterMatch()

Returns whether or not a file or directory name matches an filter element.

protected _filterMatch(string|array<string|int, mixed> $filter, string $filename) : bool
Parameters
$filter : string|array<string|int, mixed>

Regular expression(s) to build the filter from.

$filename : string

String containing the file/directory name to match.

Return values
bool

True on match, false on no match.

_getDataSize()

Return the size of $data.

protected _getDataSize(string|resource $data) : int
Parameters
$data : string|resource

The data.

Return values
int

The data length.

_getPath()

Returns the full path of an item.

protected _getPath(string $path, string $name) : mixed
Parameters
$path : string

The path of directory of the item.

$name : string

The name of the item.

Return values
mixed

Full path when $path isset and just $name when not set.

_listFolder()

Returns an unsorted file list of the specified directory.

protected _listFolder([string $path = '' ][, string|array<string|int, mixed> $filter = null ][, bool $dotfiles = true ][, bool $dironly = false ]) : array<string|int, mixed>
Parameters
$path : string = ''

The path of the directory.

$filter : string|array<string|int, mixed> = null

Regular expression(s) to filter file/directory name on.

$dotfiles : bool = true

Show dotfiles?

$dironly : bool = false

Show only directories?

Tags
throws
Horde_Vfs_Exception
Return values
array<string|int, mixed>

File list.

_setPath()

Changes the current directory on the server.

protected _setPath(string $path) : mixed
Parameters
$path : string

The path to change to.

Tags
throws
Horde_Vfs_Exception
Return values
mixed

Search results