Codice PHP:
function recursive_dir($dir){
#Get ID connect ftp_mode and
global $mode, $conn, $remote_folder, $file_list;
#Open resource to read data
if (!($handle = opendir($dir)))
//die("Cannot open datadir\n");
send_error("Impossibile aprire la directory");
#Read data from local folder $default_dir
while(false !==($item = readdir($handle))){
if (is_dir($dir."/".$item)) {
#Erase al "." and ".." to content of $item
if ($item != "." && $item != ".."){
#Make directory on remote Server
if (!(ftp_mkdir($conn, $item)))
//die("Cannot possible mkdir $item\n");
send_error("Impossibile creare la directory $item\n");
#Get current directory for current session
$pwd = ftp_pwd($conn);
//if(!$pwd) die("Cannot get current Work Directory\n");
if(!$pwd) send_error("Impossibile recuperare la directory di lavoro\n");
if(!(ftp_chdir($conn, $pwd."/".$item)))
send_error("Impossibile cambiare directory: ".$pwd."/".$item."\n");
#Call recursive dir to
recursive_dir($dir."/".$item);
if(!(ftp_cdup($conn)))
send_error("Impossibile cambiare directory a: $remote_folder");
}
}//End for first check of $item: if is_dir($item)
else {
//$fp = @fopen($dir."/".$item, "r");
$pwd = ftp_pwd($conn);
if(ftp_put($conn, $item, $dir."/".$item, $mode)){
$file_list.= (string)$dir."/".$item."\n";
}//End for if uploaded file
//fclose($fp);
}
}//End for else
closedir($handle);
}//End for recursive function