ftp://

ftps://

ftp:// -- ftps://Доступ к URL-адресам по протоколу FTP(s)

Описание

Позволяет читать существующие файлы и создавать новые файлы через FTP. Если сервер FTP не поддерживает пассивный режим, соединение будет невозможно.

Вы можете открыть файл либо для чтения, либо для записи, но не одновременно для того и другого. Если файл на сервере FTP уже существует, и вы пытаетесь открыть его для записи, но не указали опцию контекста overwrite, соединение будет невозможно. Если вам необходимо перезаписать существующие файлы на FTP, укажите опцию overwrite в контексте и откройте файл для записи. Кроме того, вы можете использовать расширение FTP.

Если вы установили директиву from в файле php.ini, то это значение будет отправлено как пароль при анонимном подключении к FTP.

Использование

  • ftp://example.com/pub/file.txt
  • ftp://user:password@example.com/pub/file.txt
  • ftps://example.com/pub/file.txt
  • ftps://user:password@example.com/pub/file.txt

Опции

Основная информация
Атрибут PHP 4 PHP 5
Ограничение по allow_url_fopen Да Да
Чтение Да Да
Запись Да (только новые файлы) Да (новые файлы / существующие файлы с опцией overwrite)
Добавление Нет Да
Одновременное чтение и запись Нет Нет
Поддержка stat() Нет Начиная с PHP 5.0.0 доступны только: filesize(), filetype(), file_exists(), is_file(), и is_dir(). Начиная с PHP 5.1.0 доступны: filemtime().
Поддержка unlink() Нет Да
Поддержка rename() Нет Да
Поддержка mkdir() Нет Да
Поддержка rmdir() Нет Да

Список изменений

Версия Описание
4.3.0 Добавлена поддержка ftps://.

Примечания

Замечание:

FTPS поддерживается только когда включена поддержка расширения OpenSSL.

Если сервер не поддерживает SSL, то соединение переключается обратно на обычный нешифрованный протокол FTP.

Замечание: Дополнение
Начиная с PHP 5.0.0 файлы могут быть дописаны с помощью ftp:// URL-обертки. В предыдущих версиях попытка дописать файл через ftp:// приводила к ошибке.

Смотрите также

add a note add a note

User Contributed Notes 3 notes

up
1
php at f00n dot com
13 years ago
For Intranet purposes I found I preferred to move my file via ftp functions to match the session user's ftp account and put the file in a holding bay so I knew who it was from.

The FTP wrapper method will NOT do this if your ftp server does NOT support passive mode.

eg.  an ftp server behind NAT/routing
up
-1
Anonymous
12 years ago
<?
$str ="replace all contenents";
$filew="ftp://gufo:gufo@192.168.1.55:21/jj.php";
$opts = array('ftp' => array('overwrite' => true));
$context = stream_context_create($opts);
$strwri = file_put_contents($filew,$str,LOCK_EX,$context);
?>
up
-8
fazil dot stormhammer dot nospam at gmail dot com
9 years ago
Document says "Allows read access to existing files and creation of new files via FTP. If the server does not support passive mode ftp, the connection will fail. "

As of version 5.2.5 at least fopen("ftp://...") uses an ACTIVE mode connection by default (it issues an FTP PORT command but not a PASV command).  To force passive mode:

$f = fopen("ftp://...");
ftp_pasv($f, true);
To Top