php[world] 2018 - Call for Speakers

Opções de contexto do FTP

Opções de contexto do FTPLista de opções de contexto do FTP


Opções de contexto para os transportadores ftp:// e ftps://.


overwrite boolean

Permite a sobreescrita de arquivos existentes no servidor remoto. Aplicável somente no modo de escrita (uploading).

FALSE como padrão.

resume_pos integer

Deslocamento do arquivo a se começar a transferência. Aplicável somente no modo de leitura (downloading).

0 (Início do arquivo), como padrão.

proxy string

Requisição Proxy FTP pelo servidor proxy http. Aplicável em arquivos somente em operações de leitura. Ex: tcp://


Versão Descrição
5.1.0 Adicionada a opção proxy.
5.0.0 Adicionada as opções overwrite e resume_pos.


Nota: Opções de contextos de streams socket básicos
Opções de contextos adicionais podem ser suportadas em transportes básicos Em streams ftp://, use as opções de contexto do transporte tcp://. Em streams ftps://, use as opções de contexto do transporte ssl://.

add a note add a note

User Contributed Notes 2 notes

php dot net at misterchucker dot com
9 years ago
This is an example of how to allow fopen() to overwrite a file on an FTP site. If the stream context is not modified, an error will occur: "...failed to open stream: Remote file already exists and overwrite context option not specified...".

// The path to the FTP file, including login arguments
$ftp_path = '';

// Allows overwriting of existing files on the remote FTP server
$stream_options = array('ftp' => array('overwrite' => true));

// Creates a stream context resource with the defined options
$stream_context = stream_context_create($stream_options);

// Opens the file for writing and truncates it to zero length
if ($fh = fopen($ftp_path, 'w', 0, $stream_context))
// Writes contents to the file
fputs($fh, 'example contents');
// Closes the file handle
'Could not open file.');
dev at codesatori dot com
1 year ago
Apparently the overwrite-option only registers as false if it's absent. If I specify it as false, it acts the same as true and overwrites. Then,
if (empty($opts['overwrite'])) {
...was the simple fix for my FTP stream wrapper class sporting default options. This is quite unexpected though; false means false even if I say so? Apparently PHP (7.0.2) just checks if the option exists, not its boolean value.
To Top