FTP

User Contributed Notes

mser at netweave dot com 10-Apr-2015 04:39
syntax error in the above example, ftp_nlist requires a directory parameter:

$ftp->ftp_nlist('.');   // retrieve contents of current directory
rob at signalfire dot co dot uk 17-Jan-2014 09:56
In example 2 above you may need to set the system to to use pasv to get a result ie:

$ftp = new ftp('ftp.example.com');
$ftp->ftp_login('username','password');
$ftp->ftp_pasv(TRUE);
var_dump($ftp->ftp_nlist());
boris dot hocde at gmail dot com 01-Aug-2013 10:21
Think about using the ftp:// wrapper for simple manipulations (getting or storing a single file).

<?php
$content
= file_get_contents('ftp://login:password@server/directory/file.txt');
copy('local_file.txt', 'ftp://login:password@server/directory/new_file.txt');
?>

Same kind of mistake: using cURL to get the content of a public URL...
asifkhandk at gmail dot com 24-Feb-2013 05:19
Upload file to server via ftp.

<?php
$ftp_server
="";
 
$ftp_user_name="";
 
$ftp_user_pass="";
 
$file = "";//tobe uploaded
 
$remote_file = "";

 
// set up basic connection
 
$conn_id = ftp_connect($ftp_server);

 
// login with username and password
 
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

 
// upload a file
 
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
    echo
"successfully uploaded $file\n";
    exit;
 } else {
    echo
"There was a problem while uploading $file\n";
    exit;
    }
 
// close the connection
 
ftp_close($conn_id);
?>
tendrid at gmail dot com 21-Sep-2011 09:15
For those who dont want to deal with handling the connection once created, here is a simple class that allows you to call any ftp function as if it were an extended method.  It automatically puts the ftp connection into the first argument slot (as all ftp functions require).

This code is php 5.3+

<?php
class ftp{
    public
$conn;

    public function
__construct($url){
       
$this->conn = ftp_connect($url);
    }
   
    public function
__call($func,$a){
        if(
strstr($func,'ftp_') !== false && function_exists($func)){
           
array_unshift($a,$this->conn);
            return
call_user_func_array($func,$a);
        }else{
           
// replace with your own error handler.
           
die("$func is not a valid FTP function");
        }
    }
}

// Example
$ftp = new ftp('ftp.example.com');
$ftp->ftp_login('username','password');
var_dump($ftp->ftp_nlist());
?>