Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Appendices : List of Supported Protocols/Wrappers : FTP and FTPS

FTP and FTPS

PHP 3, PHP 4, PHP 5. ftps:// since PHP 4.3.0

  • 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

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.

You can open files for either reading or writing, but not both simultaneously. If the remote file already exists on the ftp server and you attempt to open it for writing but have not specified the context option overwrite, the connection will fail. If you need to overwrite existing files over ftp, specify the overwrite option in the context and open the file for writing. Alternatively, you can use the FTP extension.

Appending:

As of PHP 5.0.0 files may be appended via the ftp:// URL wrapper. In prior versions, attempting to append to a file via ftp:// will result in failure.

ftps:// was introduced in PHP 4.3.0. It is the same as ftp://, but attempts to negotiate a secure connection with the ftp server. If the server does not support SSL, then the connection falls back to regular unencrypted ftp.

Note:

FTPS is supported starting from PHP 4.3.0, if you have compiled in support for OpenSSL.

Table O.4. Wrapper Summary

Attribute PHP 4 PHP 5
Restricted by allow_url_fopen Yes Yes
Allows Reading Yes Yes
Allows Writing Yes (new files only) Yes (new files/existing files with overwrite)
Allows Appending No Yes
Allows Simultaneous Reading and Writing No No
Supports stat() No As of PHP 5.0.0: filesize(), filetype(), file_exists(), is_file(), and is_dir() elements only. As of PHP 5.1.0: filemtime().
Supports unlink() No Yes
Supports rename() No Yes
Supports mkdir() No Yes
Supports rmdir() No Yes


Table O.5. Context options (as of PHP 5.0.0)

Name Usage Default
overwrite Allow overwriting of already existing files on remote server. Applies to write mode (uploading) only. FALSE (Disabled)
resume_pos File offset at which to begin transfer. Applies to read mode (downloading) only. 0 (Beginning of File)
proxy (PHP 5.1.0 or greater) Proxy FTP request via http proxy server. Applies to file read operations only. Ex: tcp://squid.example.com:8000  


Underlying socket stream context options:

Additional context options may be supported by the underlying transport For ftp:// streams, refer to context options for the tcp:// transport. For ftps:// streams, refer to context options for the ssl:// transport.

Code Examples / Notes » wrappers.ftp

wlangdon

old fashioned FTP servers may not be compatible with ftp_connect().

php

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


26-sep-2005 04:33

<?
$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);
?>


Change Language


Follow Navioo On Twitter
Filesystem
Socket
HTTP and HTTPS
FTP and FTPS
PHP input/output streams
Compression Streams
Data (RFC 2397)
Secure Shell 2
Audio Streams
Process Interaction Streams
eXTReMe Tracker