Fra i vari protocolli, PHP ci mette a disposizione una vasta libreria di funzioni legate al protocollo FTP (FILE TRANSFER PROTOCOL), per il trasferimento di file da un computer all'altro in una rete. Vediamone le principali.
ftp_connect
Questa è la funzione "principale" nel senso che ci permette di stabilire una connessione FTP fra la nostra macchina ed il server FTP remoto. La sua sintassi è:
$stream = ftp_connect(host, port);
dove host è il nome del server a cui intendiamo connetterci e port (opzionale) è la porta alternativa alla quale ci si vuole connettere; se questa non è specificata, viene utilizzata la porta di default per il protocollo FTP, ossia la 21. Nella variabile $stream, inoltre, viene immagazzinato appunto lo stream di dati che il client (in questo caso il PHP) riceve dal server, ossia i messaggi di connessione accettata (con i vari dettagli) o di connessione rifiutata.
Ad esempio, per connetterci alla porta di default del server FTP "ftp://ftp.host.com" utilizzeremo:
$stream = ftp_connect("ftp://ftp.host.com");
ftp_login
Dopo la connessione, abbiamo bisogno di identificarci in modo che il server ci permetta lo scambio dei dati. molti saranno abituati a non vedere tale fase visto che, con i più diffusi client FTP grafici essa è svolta in automatico utilizzando le informazioni di login (username e password) inseriti come opzioni per il collegamento, ma sappiate che questa è una fase di vitale importanza per la connessione. La sintassi della funzione è:
$login = ftp_login(stream, username, password);
Se ad esempio in precedenza ci eravamo collegati all'host "ftp.host.com", utilizzando la variabile "$stream", adesso potremo procedere al login vero e proprio con:
$login = ftp_login($stream, "utente", "password");
La variabile $login ci servirà per capire se il login è andato o meno a buon fine e conterrà il valore "1" per il successo, "0" altrimenti. Ad esempio, per vedere se continuare lo scambio di dati in seguito all'autorizzazione potremo utilizzare il valore assegnato a tale variabile e scrivere:
if ($login == "1") {
... # Fai il resto delle operazioni
} else {
echo "Autorizzazione non riuscitan";
}
Una volta connessi, potremo sapere su che macchina stiamo lavorando con la funzione ftp_systype()
che ha sintassi:
$system = ftp_systype($stream);
ftp_pwd
Questa funzione invoca il comando "pwd", ovvero "Print work directory", che potremo tradurre come "Visualizza la directory corrente". Per vedere a che directory veniamo connessi dopo il login, potremo scrivere:
$directory = ftp_pwd($stream);
dove $stream è sempre la variabile che abbiamo utilizzato per la connessione con ftp_connect()
.