phpseclib API Documentation
Class

phpseclib\Net\SCP

class SCP

Pure-PHP implementations of SCP.

Constants

SOURCE_LOCAL_FILE

Reads data from a local file.

SOURCE_STRING

Reads data from a string.

MODE_SSH1

SSH1 is being used.

MODE_SSH2

SSH2 is being used.

Properties

object $ssh SSH Object
int $packet_size Packet Size
int $mode Mode

Methods

SCP __construct($ssh)

Default Constructor.

bool put(string $remote_file, string $data, int $mode = self::SOURCE_STRING, callable $callback = null)

Uploads a file to the SCP server.

mixed get(string $remote_file, string $local_file = false)

Downloads a file from the SCP server.

_send(string $data)

Sends a packet to an SSH server

string _receive()

Receives a packet from an SSH server

_close()

Closes the connection to an SSH server

Details

at line 110
public SCP __construct($ssh)

Default Constructor.

Connects to an SSH server

Parameters

$ssh

Return Value

SCP

at line 146
public bool put(string $remote_file, string $data, int $mode = self::SOURCE_STRING, callable $callback = null)

Uploads a file to the SCP server.

By default, \phpseclib\Net\SCP::put() does not read from the local filesystem. $data is dumped directly into $remote_file. So, for example, if you set $data to 'filename.ext' and then do \phpseclib\Net\SCP::get(), you will get a file, twelve bytes long, containing 'filename.ext' as its contents.

Setting $mode to self::SOURCELOCALFILE will change the above behavior. With self::SOURCELOCALFILE, $remotefile will contain as many bytes as filename.ext does on your local filesystem. If your filename.ext is 1MB then that is how large $remotefile will be, as well.

Currently, only binary mode is supported. As such, if the line endings need to be adjusted, you will need to take care of that, yourself.

Parameters

string $remote_file
string $data
int $mode
callable $callback

Return Value

bool

Exceptions

FileNotFoundException if you're uploading via a file and the file doesn't exist

at line 219
public mixed get(string $remote_file, string $local_file = false)

Downloads a file from the SCP server.

Returns a string containing the contents of $remotefile if $localfile is left undefined or a boolean false if the operation was unsuccessful. If $local_file is defined, returns true or false depending on the success of the operation

Parameters

string $remote_file
string $local_file

Return Value

mixed

at line 275
public _send(string $data)

Sends a packet to an SSH server

Parameters

string $data

at line 294
public string _receive()

Receives a packet from an SSH server

Return Value

string

Exceptions

UnexpectedValueException on receipt of an unexpected packet

at line 328
public _close()

Closes the connection to an SSH server