W3docs

ftp_quit()

La funzione ftp_quit() è una funzione PHP integrata che chiude una connessione FTP. In questo articolo la esaminiamo in dettaglio.

Comprendere la funzione PHP ftp_quit()

La funzione ftp_quit() chiude una connessione FTP aperta e rilascia le risorse associate. È la controparte di ftp_connect(): una volta terminati i trasferimenti di file, chiamare ftp_quit() invia il comando FTP QUIT al server e termina la sessione in modo pulito.

Questo articolo spiega cosa fa la funzione, perché è importante chiudere una connessione e come utilizzarla in modo sicuro nelle basi di codice PHP più datate — insieme al moderno sostituto da preferire.

Deprecata e rimossa: ftp_quit() è un alias di ftp_close(). L'alias è stato deprecato in PHP 7.2 e rimosso in PHP 8.0. In qualsiasi progetto che utilizzi PHP 8 o versioni successive, chiama ftp_close() — il comportamento è identico. Questa guida documenta ftp_quit() per la manutenzione del codice legacy.

Cos'è ftp_quit()?

La funzione ftp_quit() accetta un unico parametro:

  1. ftp_stream — l'identificatore di connessione restituito da ftp_connect() (o da ftp_ssl_connect()).

Restituisce true in caso di successo, o false in caso di errore.

Perché chiudere una connessione FTP?

PHP chiude automaticamente una connessione FTP al termine dello script, quindi perché chiamare ftp_quit() esplicitamente?

  • Liberare le risorse prima del tempo. In uno script a lunga esecuzione che apre più connessioni (ad esempio per sincronizzare con più server), chiudere ciascuna non appena si è terminato evita di mantenere socket inattivi aperti.
  • Inviare un QUIT pulito. Una chiusura regolare comunica al server che si sta uscendo, consentendogli di rilasciare immediatamente le proprie risorse per sessione anziché attendere un timeout.
  • Rispettare i limiti di connessione. Molti server FTP limitano le connessioni simultanee per utente. Rilasciare le connessioni tempestivamente evita errori del tipo "troppe connessioni".

Sintassi di ftp_quit()

La sintassi della funzione ftp_quit() è la seguente:

Sintassi di ftp_quit()

bool ftp_quit ( resource $ftp_stream )

La funzione ftp_quit() accetta un parametro obbligatorio, ftp_stream. Il parametro ftp_stream è l'identificatore di connessione restituito dalla funzione ftp_connect().

Utilizzo di ftp_quit()

Per utilizzare la funzione ftp_quit(), si stabilisce prima una connessione con ftp_connect() e ci si autentica con ftp_login(). Una volta completati i trasferimenti, si chiude la sessione. Ecco un flusso tipico per ambienti PHP legacy:

Utilizzo di ftp_quit()

<?php

// Set up an FTP connection
$conn = ftp_connect('ftp.example.com');

// Login with your FTP credentials
ftp_login($conn, 'username', 'password');

// ... transfer files here (ftp_put, ftp_get, etc.) ...

// Close the FTP connection (use ftp_close() in PHP 8+)
ftp_quit($conn);

In questo esempio ci colleghiamo al server FTP con ftp_connect(), ci autentichiamo con ftp_login(), eseguiamo i trasferimenti di file e infine chiudiamo la connessione con ftp_quit().

Dopo l'esecuzione di ftp_quit(), l'handle $conn non è più valido — qualsiasi ulteriore chiamata FTP su di esso (come ftp_get() o ftp_pwd()) fallirà. Se è necessario comunicare nuovamente con il server, aprire una nuova connessione.

Gestione degli errori in ftp_quit()

È importante gestire correttamente gli errori quando si utilizza la funzione ftp_quit(). Se la funzione restituisce false, significa che l'operazione non è riuscita. Gli errori sono rari e di solito indicano che la connessione era già stata chiusa. Ecco un esempio di come gestire gli errori:

Gestione degli errori in ftp_quit()

<?php

$connection_closed = ftp_quit($conn);

if (!$connection_closed) {
    echo "Failed to close FTP connection.\n";
}

Verificando il valore restituito, è possibile confermare che la connessione è stata chiusa come previsto. In pratica un risultato false è raro e di solito indica che la connessione era già stata interrotta.

ftp_quit() vs. ftp_close()

Le due funzioni hanno un comportamento identico — ftp_quit() è semplicemente un alias più datato. L'unica differenza riguarda la disponibilità:

FunzioneDisponibile inStato
ftp_quit()PHP 4 – 7.xDeprecata in 7.2, rimossa in 8.0
ftp_close()PHP 4 in poiRaccomandata

Se stai scrivendo nuovo codice, usa sempre ftp_close(). Riserva ftp_quit() alla manutenzione di codice che deve girare su PHP 7.1 o versioni precedenti.

Conclusione

La funzione ftp_quit() chiude una connessione FTP negli ambienti PHP legacy, liberando risorse e terminando la sessione in modo pulito. Con un utilizzo corretto e una gestione appropriata degli errori è uno strumento affidabile nei flussi di lavoro FTP sulle versioni PHP più datate. Per PHP 8 e versioni successive, sostituiscila con ftp_close(). Per esplorare l'intero toolkit FTP, consulta la panoramica delle funzioni FTP di PHP.

Esercitazione

Pratica
Qual è la funzione principale del metodo FTP_QUIT in PHP?
Qual è la funzione principale del metodo FTP_QUIT in PHP?
Was this page helpful?