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()

woodos 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

woodos

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

Scopri come creare un'interazione dinamica tra jQuery e PHP usando AJAX. Guida passo passo con esempio funzionante e codice HTML/PHP.

Interazione tra jQuery e PHP: guida completa con esempio pratico

woodos6 Luglio 20256 Luglio 20250

Cos’è jQuery e perché è ancora utile oggi

woodos22 Giugno 202522 Giugno 20250

Form HTML: creare campi di input, textarea e invio dati in modo efficace

woodos4 Giugno 202528 Maggio 20250

Operatori in PHP: guida completa agli operatori aritmetici, logici e di confronto

woodos3 Giugno 202524 Maggio 20250
  • 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à array backend ccTLD cms css css3 dominio editor Frontend Funzioni Funzioni PHP per XML Google hosting HTML HTML5 HTTP HTTPS input javascript jQuery JSON link login mysql permalink PHP Programmazione Python return script seo SERP server session sessione ssl TAG template tutorial web web design wordpress wp

Post Grid

Scopri come creare un'interazione dinamica tra jQuery e PHP usando AJAX. Guida passo passo con esempio funzionante e codice HTML/PHP.
  • Php

Interazione tra jQuery e PHP: guida completa con esempio pratico

6 Luglio 20256 Luglio 2025
  • JavaScript

Cos’è jQuery e perché è ancora utile oggi

22 Giugno 202522 Giugno 2025
  • Python

Cicli for e while in Python: guida pratica alla ripetizione dei blocchi

7 Giugno 202529 Maggio 2025
  • Motori di ricerca

Differenza tra risultati organici e a pagamento nei motori di ricerca

5 Giugno 202524 Maggio 2025

Blogzee - Blog WordPress Theme 2025.
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