Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Funzioni legate al protocollo FTP - II

Analisi delle funzioni legate al protocollo ftp: ftp_cdup, ftp_chdir, ftp_mkdir, ftp_nlist, ftp_get e altre
Analisi delle funzioni legate al protocollo ftp: ftp_cdup, ftp_chdir, ftp_mkdir, ftp_nlist, ftp_get e altre
Link copiato negli appunti

ftp_cdup e ftp_chdir

Queste due funzioni servono rispettivamente a muoversi alla directory superiore e a muoversi in una determinata directory all'interno del server.
La prima si utilizza con sintassi:

$var = ftp_cdup($stream);

La seconda invece:

$newdir = ftp_chdir($stream, "nuova_directory");

Se ad esempio al login siamo nella directory "/" e volessimo spostarci in "/var/wwwdata" potremo scrivere:

$newdir = ftp_chdir($stream, "/var/wwwdata");

ftp_mkdir e ftp_rmdir

Queste due funzioni invocano il comando "mkdir "(crea una directory) e "rmdir" (rimuovi una directory). La prima restituisce il nome della nuova directory, la seconda solamente i valori true o false. Potremo creare un piccolo loop e scrivere:

# Posizioniamoci in "/var/wwwdata".
$mydir = ftp_chdir($stream, "/var/wwwdata/");

# Creiamo la directory "prova" come sottodirectory di "/var/wwwdata"
$newdir = ftp_mkdir($stream, "prova")

# Cancelliamo la directory appena creata!
$deleted_dir = ftp_rmdir($stream, $newdir);

# Possiamo ora controllare il tutto con:
if ($deleted_dir == "1") {
print "Operazione completata con successo.n";
} else {
print "Qualcosa non è andato per il verso giusto.n";
}

Ovviamente l'esempio non ha molto senso in una vera connessione (perchè creare una directory e subito cancellarla?), ma è stato proposto per comprendere come utilizzare al meglio queste due funzioni.

ftp_nlist

Questa funzione è analoga al comando "dir", ossia il comando utilizzato per vedere i nomi dei file presenti in una directory. La sua sintassi è:

$list = ftp_nlist($stream, directory);

Ad esempio, possiamo portarci nella directory "/var/wwwdata" e leggerne i file con:

$newdir = "/var/wwwdata";
$list = ftp_nlist($stream, $newdir);

I risultati sono contenuti in un array, quindi un 'echo "$list"' non avrebbe alcun senso.

ftp_get

Funzione che richiama il comando GET, per scaricare un file dal server remoto. Dobbiamo specificare per la funzione, oltre al solito stream, il nome del file locale, il nome del file remoto e la modalità di trasferimento (FTP_ASCII o FTP_BINARY); la sintassi completa è:

$file = ftp_get($stream, local_filename, remote_filename, mode);

Ad esempio, volendo scaricare dal server il file "data.txt" (supponiamo di essere già all'interno della directory che lo contiene) inserendolo nella directory "/tmp" con nome "file.txt" in ASCII mode, scriveremo:

$file = ftp_get($stream, "/tmp/file.txt", "data.txt", FTP_ASCII);

Per vedere se l'operazione ha avuto o meno successo, possiamo operare in due modi: controllare se effettivamente il file c'è nel nostro disco oppure controllare il valore della variabile $file: se ha valore "1" allora l'operazione è stata completata, se ha valore "0" nessun file sarà stato scaricato sul nostro disco.

ftp_put


Questa funzione fa esattamente il contrario di ftp_put(), ossia carica un file sul server. La sua sintassi è:

$file = ftp_put($stream, remote_filename, local_filename, mode);

Le opzioni sono identiche alle precedenti, quindi possiamo fare l'esempio contrario del precedente: carichiamo il file locale "/tmp/file.txt" nella directory remota (siamo già in questa directory) con il nome "data.txt". Tutto in ASCII mode, ovviamente:

$file = ftp_put ($stream, "data.txt", "/tmp/file.txt", FTP_ASCII);

Anche qui, possiamo controllare in due modi: valutando il valore di $file oppure invocando la funzione ftp_nlist() per vedere se fra i file c'è anche "data.txt".

Ti consigliamo anche