Skip to content

  • Php
    • CMS
      • Laravel
      • Moodle
      • OpenCart
        • Plugin
      • WordPress
        • funzioni
        • Template
        • Tutorial
        • Plugin
          • jwt authentication
          • Polylang
          • woocommerce
          • Yoast SEO
    • CGI
    • Function
    • Laravel
    • Script
    • Variabile
  • HTML
    • Bootstrap
    • CSS
    • Codepen
  • Python
  • Motori di ricerca
    • Google
    • SEO
  • JavaScript
    • Jquery
    • Node.js
    • Script
    • Tutorial
  • Hosting e domini
    • Domini
    • Sever
  • DataBase
    • MySql
  • Forum
Subscribe

  • Php
    • CMS
      • Laravel
      • Moodle
      • OpenCart
        • Plugin
      • WordPress
        • funzioni
        • Template
        • Tutorial
        • Plugin
          • jwt authentication
          • Polylang
          • woocommerce
          • Yoast SEO
    • CGI
    • Function
    • Laravel
    • Script
    • Variabile
  • HTML
    • Bootstrap
    • CSS
    • Codepen
  • Python
  • Motori di ricerca
    • Google
    • SEO
  • JavaScript
    • Jquery
    • Node.js
    • Script
    • Tutorial
  • Hosting e domini
    • Domini
    • Sever
  • DataBase
    • MySql
  • Forum
  • Function
  • Php

Lavorare su FTP remoto con PHP ftp_connect(), ftp_login(), ftp_get e ftp_put()

Renato Cantarella 27 Luglio 202329 Luglio 202318 mins0

Sapevi che è possibile aprire una connessione FTP utilizzando il linguaggio PHP? E’
possibile ed è una pratica davvero molto utile per lavorare file o cartelle presenti su server remoti.

Grazie alle funzioni presenti di default nella libreria PHP, puoi gestire in pieno controllo files e cartelle presenti su un server remoto di cui hai un account FTP.

Sono necessari i parametri necessari

Contenuti nascondi
1 Sono necessari i parametri necessari
2 Connessione al server
3 Download di un file dal server remoto FTP
4 Upload di un file sul server remoto FTP
5 Rinominare un file dal server remoto FTP

Per entrare in connessione FTP con root di un’altro sito ti servono le credenziali di accesso allo stesso. Quindi ti occorrono:
• HOST: l’indirizzo IP oppure il nome host a cui connettersi
Esempio: ftp://nomedelsito.com
• USER: il nome utente dell’account FTP con cui si desidera connettersi
• PASSWORD: la password di accesso dell’account con cui si desidera connettersi

Iniziamo quindi proprio con il dichiarare le variabili necessarie da

utilizzare per la connessione:

// Parametri di accesso al server remoto tramite FTP
$ftp_host = "ftp://nomedelsito.com";
$ftp_username = "nome_utente";
$ftp_password = "password_di_accesso";

Il primo passo è compiuto, abbiamo preparato il terreno per effettuare la tua prima connessione FTP tramite PHP, ora hai la possibilità di connetterti al server FTP utilizzando due funzioni già incluse nella libreria PHP: ftp_connect() e ftp_login().

Connessione al server

La prima funzione, ftp_connect(), si occupa di aprire una comunicazione con un server remoto ed accetta tre parametri, di cui il primo è obbligatorio:
• $host: l’indirizzo del server verso cui aprire la connessione;
• $port: la porta di comunicazione del server attraverso cui aprire la connessione. Se non specificato, la funzione utilizzerà la porta di default per FTP, ovvero 21;
• $timeout: il tempo massimo di attesa senza operazioni entro cui la connessione viene mantenuta aperta. Se non specificato, il timeout verrà impostato a 90 secondi;

La funzione ftp_connect() restituisce uno stream FTP in caso di successo, oppure il valore bollano false in caso di errore di connessione.
La teoria è sempre noiosa, lo so, ma è necessario avere le basi prima di provare! Passiamo ora alla pratica; riprendendo quanto già visto nel primo paragrafo circa le variabili necessarie, avrai:

// Parametri di accesso al server remoto tramite FTP
$ftp_host = "ftp://nomedelsito.com";
$ftp_username = "nome_utente";
$ftp_password = "password_di_accesso";
// Stabilisce la connessione al server remoto tramite FTP
$ftp = ftp_connect( $ftp_host );
// Controlla se la connessione è andata a buon fine
if ( ! $ftp ) {
echo "Connessione FTP fallita.";
exit;
}
// Chiude la connessione FTP
ftp_close( $ftp_stream );

 

In questo modo, lo script tenta di aprire una connessione FTP verso il server host ed in caso di errore, termina la sua esecuzione visualizzando un avviso di connessione fallita.
Per approfondire il funzionamento della funzione ftp_connect(), dai un’occhiata qui:

La funzione ftp_connect()
Login al server
Se la connessione va a buon fine, vuol dire che il server host ci ha risposto ed è disponibile a
dialogare con lo script, ma per farlo è necessario “farsi riconoscere”. La seconda funzione
menzionata in precedenza, ftp_login(), si occupa appunto di effettuare l’accesso al server, tramite
la coppia username/password.
La funzione ftp_login(), accetta tre parametri, tutti obbligatori:
• $ftp_stream: la risorsa FTP che identifica la connessione al server FTP, ottenuta in
precedenza dalla funzione ftp_connect();
• $username: il nome utente dell’account con cui di desidera accedere;
• $password: la password di accesso relativa all’account con cui di desidera accedere;
La funzione ftp_login() restituisce i valori booleani true oppure false a seconda se l’accesso va a
buon fine o fallisce.
Aggiungiamo un altro mattoncino allo script precedente, ottenendo:

// Parametri di accesso al server remoto tramite FTP
$ftp_host = "ftp://nomedelsito.com";
$ftp_username = "nome_utente";
$ftp_password = "password_di_accesso";
// Stabilisce la connessione al server remoto tramite FTP
$ftp = ftp_connect( $ftp_host );
// Controlla se la connessione è andata a buon fine
if ( ! $ftp ) {
echo "Connessione FTP fallita.";
exit;
}
// Effettua il login al server remoto tramite FTP
$ftp_login = @ftp_login( $ftp_stream, $ftp_username, $ftp_password );
// Controlla se il tentativo di login è andato a buon fine
if ( ! $ftp_login ) {
echo "Login FTP fallito.";
exit;
}
// Chiude la connessione FTP
ftp_close( $ftp_stream );

Hai notato il simbolo “@” alla riga 18, prima della chiamata alla funzione ftp_login()? A cosa serve?
Il simbolo “@” prima della chiamata ad una funzione in PHP è utilizzato per “silenziare” gli eventuali
errori minori (notices/warnings) generati dalla funzione. In questo caso, visto che la funzione
ftp_login() restituisce un warning in caso di insuccesso nel login, con il simbolo “@” previeni la
visualizzazione del messaggio di warning, molto molto fastidiosa.
Per approfondire il funzionamento della funzione ftp_login(), puoi leggere:

Download di un file dal server remoto FTP

Una delle operazioni più utilizzate è sicuramente il download di un file tramite FTP. La funzione da utilizzare è ftp_get(), che accetta cinque parametri, di cui i primi tre obbligatori:
• $ftp_stream: la risorsa FTP che identifica la connessione al server FTP, ottenuta in
precedenza dalla funzione ftp_connect();
• $local_file: il percorso locale del file da prelevare;
• $remote_file: il percorso sul server remoto in cui è presente il file, completo del nome del file;
• $mode: la modalità di trasferimento del file. Può essere FTP_ASCII o FTP_BINARY;
• $resumepos: la posizione in cui iniziare il download del file;

La funzione ftp_get() restituisce i valori booleani true oppure false a seconda se il download va a
buon fine o fallisce.

Nel caso tu voglia effettuare il download di un file da server remoto FTP, lo script diventa:

// Parametri di accesso al server remoto tramite FTP
$ftp_host = "ftp://nomedelsito.com";
$ftp_username = "nome_utente";
$ftp_password = "password_di_accesso";
// Stabilisce la connessione al server remoto tramite FTP
$ftp = ftp_connect( $ftp_host );
// Controlla se la connessione ¨ andata a buon fine
if ( ! $ftp ) {
echo "Connessione FTP fallita.";
exit;
}
// Effettua il login al server remoto tramite FTP
$ftp_login = @ftp_login( $ftp_stream, $ftp_username, $ftp_password );
// Controlla se il tentativo di login è andato a buon fine
if ( ! $ftp_login ) {
echo "Login FTP fallito.";
exit;
}
// Imposta le variabili relative al file da gestire
$remote_file = "remote_test.txt";
$local_file = "downloads/local_test.txt";
// Tenta di prelevare il file da server remoto FTP
$ftp_get_response = ftp_get( $ftp_stream, $local_file, $remote_file );
// Controlla se il tentativo di download è andato a buon fine
if ( $ftp_get_response ) {
echo "Download completato con successo";
} else {
echo "Si è verificato un errore nel download del file";
}
// Chiude la connessione FTP
ftp_close( $ftp_stream );

In questo esempio, abbiamo effettuato il download del file remote_test.txt presente nella root del
server remoto nella cartella downloads/ del server locale, rinominandolo in local_test.txt.
Per approfondire il funzionamento della funzione ftp_get(), puoi leggere:

Upload di un file sul server remoto FTP

Per trasmettere un file da un server ad un altro tramite FTP, la funzione da impiegare è ftp_put(),
che, analogamente ad ftp_get(), utilizza cinque parametri, di cui i primi tre obbligatori:
• $ftp_stream: la risorsa FTP che identifica la connessione al server FTP, ottenuta in
precedenza dalla funzione ftp_connect();
• $remote_file: il percorso sul server remoto in cui posizionare il file, completo del nome del
file;
• $local_file: il percorso locale del file da uploadare;
• $mode: la modalità di trasferimento del file. Può essere FTP_ASCII o FTP_BINARY;
• $startpos: la posizione in cui iniziare l’upload del file;

La funzione ftp_put() restituisce i valori booleani true oppure false a seconda se l’upload va a buon
fine o fallisce.
Nel caso tu voglia effettuare l’upload di un file su server remoto FTP, lo script diventa:

// Parametri di accesso al server remoto tramite FTP
$ftp_host = "ftp://nomedelsito.com";
$ftp_username = "nome_utente";
$ftp_password = "password_di_accesso";
// Stabilisce la connessione al server remoto tramite FTP
$ftp = ftp_connect( $ftp_host );
// Controlla se la connessione è andata a buon fine
if ( ! $ftp ) {
echo "Connessione FTP fallita.";
exit;
}
// Effettua il login al server remoto tramite FTP
$ftp_login = @ftp_login( $ftp_stream, $ftp_username, $ftp_password );
// Controlla se il tentativo di login è andato a buon fine
if ( ! $ftp_login ) {
echo "Login FTP fallito.";
exit;
}
// Imposta le variabili relative al file da gestire
$remote_file = "uploads/remote_test.txt";
$local_file = "local_test.txt";
// Tenta di caricare il file su server remoto FTP
$ftp_put_response = ftp_put( $ftp_stream, $remote_file, $local_file );
// Controlla se il tentativo di upload è andato a buon fine
if ( $ftp_put_response ) {
echo "Upload completato con successo";
} else {
echo "Si è verificato un errore nell'upload del file";
}
// Chiude la connessione FTP
ftp_close( $ftp_stream );

In questo esempio, abbiamo effettuato l’upload del file local_test.txt presente nella stessa cartella
dello script nella cartella del server remoto uploads/, rinominandolo in remote_test.txt.
Per approfondire il funzionamento della funzione ftp_put(), puoi leggere:

Rinominare un file dal server remoto FTP

Un’altra funzione utile per lavorare con FTP e PHP è sicuramente ftp_rename() che permette di
modificare il nome di un file presente su un server remoto. Accetta tre parametri, tutti obbligatori:
• $ftp_stream: la risorsa FTP che identifica la connessione al server FTP, ottenuta in
precedenza dalla funzione ftp_connect();
• $oldname: il nome del file da rinominare, completo di percorso;
• $newname: il nuovo nome che si desidera dare al file;
La funzione ftp_rename() restituisce i valori booleani true oppure false a seconda se la modifica del
nome va a buon fine o fallisce.
Uno script di esempio per rinominare un file remoto tramite FTP potrebbe essere:

$ftp_host = "ftp://nomedelsito.com";
$ftp_username = "nome_utente";
$ftp_password = "password_di_accesso";
// Stabilisce la connessione al server remoto tramite FTP
$ftp = ftp_connect( $ftp_host );
// Controlla se la connessione è andata a buon fine
if ( ! $ftp ) {
echo "Connessione FTP fallita.";
exit;
}
// Effettua il login al server remoto tramite FTP
$ftp_login = @ftp_login( $ftp_stream, $ftp_username, $ftp_password );
// Controlla se il tentativo di login è andato a buon fine
if ( ! $ftp_login ) {
echo "Login FTP fallito.";
exit;
}
// Imposta le variabili relative al file da gestire
$old_filename = "old_test.txt";
$new_filename = "new_test.txt";
Pagina 10 di 12 https://code4life.it/guide/lavorare-su-ftp-remoto-con-php/
// Tenta di rinominare il file su server remoto FTP
$ftp_rename_response = ftp_rename( $ftp_stream, $old_filename, $new_filename );
// Controlla se il tentativo di rinomina è andato a buon fine
if ( $ftp_rename_response ) {
echo "File rinominato con successo";
} else {
echo "Si è verificato un errore nel rinominare il file";
}
// Chiude la connessione FTP
ftp_close( $ftp_stream );
Tagged: ftp FTP remoto FTP remoto con PHP ftp_connect() ftp_get ftp_login() ftp_put() PHP

Renato Cantarella

Sono uno sviluppatore web specializzato in WordPress, e-commerce e soluzioni digitali personalizzate. Mi occupo di creare siti veloci, ottimizzati SEO e orientati alla conversione, sviluppando plugin su misura e integrazioni avanzate. Lavoro ogni giorno per unire tecnica, strategia e risultati concreti, aiutando aziende e professionisti a crescere online.

Navigazione articoli

23 Luglio 2023
L’effetto al passaggio del mouse CSS di Adam Argyle
4 Agosto 2023
Come inserire il form di login di WordPress nel front-end

Lascia un commento Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.

Related Articles

"PHP substr_count(): contare quante volte compare una stringa

PHP substr_count(): contare quante volte compare una stringa

Renato Cantarella11 Maggio 202611 Maggio 20260
Effetto testo animato a strisce in CSS: esempio pratico ispirato a CodePen

Effetto testo animato a strisce in CSS: esempio pratico ispirato a CodePen

Renato Cantarella26 Aprile 202626 Aprile 20260

Effetti Hover CSS: guida completa agli hover moderni per siti web

Renato Cantarella5 Aprile 20265 Aprile 20260

Classe MySQLi per PHP 8.x: veloce, sicura e facile da usare V 2.0

Renato Cantarella7 Marzo 20267 Marzo 20260
Crosshop il negozio di articoli di motocross
  • Php
    • CMS
      • Laravel
      • Moodle
      • OpenCart
        • Plugin
      • WordPress
        • funzioni
        • Template
        • Tutorial
        • Plugin
          • jwt authentication
          • Polylang
          • woocommerce
          • Yoast SEO
    • CGI
    • Function
    • Laravel
    • Script
    • Variabile
  • HTML
    • Bootstrap
    • CSS
    • Codepen
  • Python
  • Motori di ricerca
    • Google
    • SEO
  • JavaScript
    • Jquery
    • Node.js
    • Script
    • Tutorial
  • Hosting e domini
    • Domini
    • Sever
  • DataBase
    • MySql
  • Forum

Tag

#_SESSION accessibilità AI backend Cloudflare cms crawl budget css css3 dominio editor Frontend Funzioni Funzioni PHP per XML Google hosting HTML HTML5 HTTPS input javascript jQuery JSON Laravel link login mysql PHP Programmazione Python script seo SEO tecnico SERP server session sessione ssl sviluppo web template tutorial python web web design wordpress wp

Post Grid

  • Domini

Access-Control-Allow-Origin: cos’è, a cosa serve e come risolvere gli errori CORS

2 Giugno 20262 Giugno 2026
  • Java

Error 500 java.lang.NullPointerException: cos’è e come risolverlo

22 Maggio 202622 Maggio 2026
"PHP substr_count(): contare quante volte compare una stringa
  • Php

PHP substr_count(): contare quante volte compare una stringa

11 Maggio 202611 Maggio 2026
email
  • Hosting e domini

Perché una email può arrivare dopo giorni con la data di oggi

30 Aprile 202630 Aprile 2026

© Digita.org — curato da Renato Cantarella 2026.
Gestisci Consenso Cookie
Utilizziamo tecnologie come i cookie per memorizzare e/o accedere alle informazioni del dispositivo. Lo facciamo per migliorare l'esperienza di navigazione e per mostrare annunci personalizzati. Il consenso a queste tecnologie ci consentirà di elaborare dati quali il comportamento di navigazione o gli ID univoci su questo sito. Il mancato consenso o la revoca del consenso possono influire negativamente su alcune caratteristiche e funzioni.

Pubblicità e contenuti personalizzati, misurazione delle prestazioni dei contenuti e degli annunci, ricerche sul pubblico, sviluppo di servizi

Archiviare informazioni su dispositivo e/o accedervi

I tuoi dati personali verranno trattati da 137 fornitori TCF e 62 partner pubblicitari e le informazioni raccolte dal tuo dispositivo (come cookie, identificatori univoci e altri dati del dispositivo) potrebbero essere condivise con questi ultimi, da loro visualizzate e memorizzate oppure essere usate nello specifico da questo sito o questa app.

Alcuni fornitori potrebbero trattare i tuoi dati personali sulla base dell'interesse legittimo, al quale puoi opporti gestendo le tue opzioni qui sotto. Cerca nella parte inferiore di questa pagina o nelle nostre norme sulla privacy un link che ti permette di ritirare il consenso.
Funzionale Sempre attivo
L'archiviazione tecnica o l'accesso sono strettamente necessari al fine legittimo di consentire l'uso di un servizio specifico esplicitamente richiesto dall'abbonato o dall'utente, o al solo scopo di effettuare la trasmissione di una comunicazione su una rete di comunicazione elettronica.
Preferenze
L'archiviazione tecnica o l'accesso sono necessari per lo scopo legittimo di memorizzare le preferenze che non sono richieste dall'abbonato o dall'utente.
Statistiche
L'archiviazione tecnica o l'accesso che viene utilizzato esclusivamente per scopi statistici. L'archiviazione tecnica o l'accesso che viene utilizzato esclusivamente per scopi statistici anonimi. Senza un mandato di comparizione, una conformità volontaria da parte del vostro Fornitore di Servizi Internet, o ulteriori registrazioni da parte di terzi, le informazioni memorizzate o recuperate per questo scopo da sole non possono di solito essere utilizzate per l'identificazione.
Marketing
L'archiviazione tecnica o l'accesso sono necessari per creare profili di utenti per inviare pubblicità, o per tracciare l'utente su un sito web o su diversi siti web per scopi di marketing simili.
  • Gestisci opzioni
  • Gestisci servizi
  • Gestisci {vendor_count} fornitori
  • Per saperne di più su questi scopi
Visualizza le preferenze
  • {title}
  • {title}
  • {title}
Go to mobile version