PHP Conference Nagoya 2025

Options de contexte FTP

Options de contexte FTPListe des options de contexte FTP

Description

Options de contexte pour les protocoles ftp:// et ftps://.

Options

overwrite booléen

Permet l'écrasement des fichiers existants sur le serveur distant. Ne s'applique qu'en mode écriture.

Par défaut, false.

resume_pos entier

Position dans le fichier à partir de laquelle on commence le transfert. Ne s'applique qu'en mode écriture.

Par défaut, vaut 0 (Début du fichier).

proxy chaîne de caractères

URI de l'adresse du proxy FTP. Ne s'applique qu'aux opérations de lecture de fichiers. Par exemple : tcp://squid.example.com:8000.

Notes

Note: Options de contexte du flux sous-jacent
Des options de contexte supplémentaires peuvent être supportées par le transport sous-jacent. Pour les flux ftp://, référez-vous aux options de contexte du transport tcp://. Pour les flux ftps://, référez-vous aux options de contexte du transport ssl://.

add a note

User Contributed Notes 3 notes

up
16
php dot net at misterchucker dot com
15 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...".

<?php
// The path to the FTP file, including login arguments
$ftp_path = 'ftp://username:password@example.com/example.txt';

// 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
fclose($fh);
}
else
{
die(
'Could not open file.');
}
?>
up
0
dev at codesatori dot com
8 years 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,
<?php
if (empty($opts['overwrite'])) {
unset(
$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.
up
-3
instatiendaweb at gmail dot com
3 years ago
// Ruta del ftp debe coincidir con la ruta del localhost
$ftp_path = 'ftp://francisco:aaa@localhost:21/ftparchivo.txt';
// Escribimos las opciones de stream
$stream_options = array('ftp' => array('overwrite' => TRUE));
// Creamos un contexto
$stream_context = stream_context_create($stream_options);
\escribir::verifacionnota($stream_context, 'STREAMCONTEXT');
// Abrimos el fichero que vamos a leer
$flujo = fopen($ftp_path, 'r', false, $stream_context);
//Funcion creada :vardump + string
\escribir::verifacionnota($flujo, 'VARDUMP FOPEN');

$contenido = '';
//Traduccion mientras el contenido del archivo no este al final del fichero ==> feof
while (!feof($flujo)) {
//Entonces lee 8192 bytes del archivo y añadelos a la variable contenido
$contenido .= fread($flujo, 8192);
}
\escribir::verifacionnota($contenido, 'VARDUMP CONTENIDO');
//Cerramos el flujo
fclose($flujo);
To Top