Параметры контекста FTP
Параметры контекста FTP — Список параметров контекста FTP
Описание
Параметры контекста для транспортных протоколов ftp:// и ftps://
Список изменений
Версия | Описание |
---|---|
5.1.0 |
Добавлен параметр proxy .
|
5.0.0 |
Добавлены параметры overwrite и resume_pos .
|
Примечания
Замечание: Опции контекста низлежащего потока в сокете
Дополнительные опции контекста могут поддерживаться низлежащим транспортным протоколом. Для потоков ftp://, это относится к опциям контекста для транспортного протокола tcp://. Для потоков ftps://, это относится к опциям контекста для транспортного протокола ssl://.
- Функция Контекстные опции сокета() - Список контекстных опций сокета
- Функция Опции контекста HTTP() - Cписок опций контекста HTTP
- Функция Параметры контекста FTP() - Список параметров контекста FTP
- Функция Опции контекста SSL() - Список опций контекста SSL
- Функция Опции контекста CURL() - Список опций контекста CURL
- Функция Контекстные опции Phar () - Список контекстных опций Phar
- Функция MongoDB context options() - MongoDB context option listing
- Функция Параметры контекста() - Список параметров контекста
Коментарии
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.');
}
?>
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.