Location: PHPKode > projects > Stelib > stelib-1.2.1/stelib_ftp.php
<?php
/*
	stelib_ftp.php - Libreria ftp
	Stefano Sangalli
	01 novembre 2004
*/

//!  ftp(): oggetto per la creazione e gestione di una sessione ftp
/*!
	Questo oggetto permette di creare e gestire una o pi� sessioni ftp. La libreria si basa sulle funzioni della estensione ftp di php
	Le funzioni in questa estensione implementano l'accesso client ad un file server utilizzando il File Transfer Protocol (FTP) come definito in <A href='http://www.faqs.org/rfcs/rfc959.html' target='_blank'>http://www.faqs.org/rfcs/rfc959.html</A>.
	Usando il modulo FTP vengono definite le seguenti costanti: FTP_ASCII e FTP_BINARY.
	Per l'utilizzo delle funzioni FTP con la vostra configurazione PHP, dovrete aggiungere l'opzione --enable-ftp durante l'installazione PHP 4, e --with-ftp nell'installazione di PHP 3.
*/

class ftp extends Page {
	/// Indirizzo IP o nome del ftp-server
	var $FTP_HOST='';
	/// Nome utente abilitato sul servente ftp
	var $FTP_USER='';
	/// Password relativa al nome utente
	var $FTP_PASS='';
	/// Opzionale - Porta logica. Se omesso � la 21
	var $FTP_PORT='';
	/// Opzionale - Timeout sessione. Se omesso 90
	var $FTP_TIMEOUT='';
	/// Risorsa della connessione al servente ftp
	var $RESOURCE='';
	function ftp (
				/// Indirizzo IP o nome del ftp-server
				$ftp_host,
				/// Nome utente abilitato sul servente ftp
				$ftp_user,
				/// Password relativa al nome utente
				$ftp_pass,
				/// Opzionale - Porta logica. Se omesso � la 21
				$ftp_port,
				/// Opzionale - Timeout sessione. Se omesso 90
				$ftp_timeout
				) {
		if ($ftp_host) 	{ $this->FTP_HOST=$ftp_host; } 			else { $this->FTP_HOST='localhost'; }
		if ($ftp_user) 	{ $this->FTP_USER=$ftp_user; } 			else { $this->FTP_USER='anonymous'; }
		if ($ftp_pass) 	{ $this->FTP_PASS=$ftp_pass; } 			else { $this->FTP_PASS=''; 			}
		if ($ftp_port) 	{ $this->FTP_PORT=$ftp_port; } 			else { $this->FTP_USER='21'; 			}
		if ($ftp_timeout)	{ $this->FTP_TIMEOUT=$ftp_timeout; } 	else { $this->FTP_TIMEOUT='90'; 		}
	}
	
	function ftpOpen (
				/// Indirizzo IP o nome del ftp-server
				$ftp_host,
				/// Nome utente abilitato sul servente ftp
				$ftp_user,
				/// Password relativa al nome utente
				$ftp_pass,
				/// Opzionale - Porta logica. Se omesso � la 21
				$ftp_port,
				/// Opzionale - Timeout sessione. Se omesso 90
				$ftp_timeout
				) {
		if ($ftp_host) 	{ $this->FTP_HOST=$ftp_host; }
		if ($ftp_user) 	{ $this->FTP_USER=$ftp_user; }
		if ($ftp_pass) 	{ $this->FTP_PASS=$ftp_pass; }
		if ($ftp_port) 	{ $this->FTP_PORT=$ftp_port; }
		if ($ftp_timeout)	{ $this->FTP_TIMEOUT=$ftp_timeout; }
		/* connessione */
		$this->RESOURCE=ftp_connect($this->FTP_HOST,$this->FTP_PORT,$this->FTP_TIMEOUT);
		if (ftp_login($this->RESOURCE,$this->FTP_USER,$this->FTP_PASS)) {
			// OK
			return 1;
		} else {
			// ERRORE
			return 0;
		}
	}
	
	function ftpClose(
		/// Risorsa della connessione al servente ftp
		$resource
		) {
		ftp_close($resource);
		return 1;
	}
	
	function ftpPut(
		/// Nome del file remoto da salvare sul servente ftp
		$file_remoto,
		/// Nome del file locale (sul disco del client che invia la richiesta)
		$file_locale,
		/// Modalit� di invio del file : FTP_ASCII oppure FTP_BINARY
		$mode) {
		if (!$file_remoto){ $file_remoto=$file_locale; }
		if (!$mode)			{ $mode=FTP_ASCII; } // oppure FTP_BINARY	
		if ($this->RESOURCE && $file_remoto && $file_locale) {			
			if (ftp_put($this->RESOURCE,$file_remoto,$file_locale,$mode)) {
			//if (ftp_put($this->RESOURCE,$_FILES['file']['name'],$_FILES['file']['tmp_name'],$mode)) {
				return 1;
			} else {
				return 0;
			}
		}
	}
	function ftpGet(
		/// Nome del file remoto da salvare sul servente ftp
		$file_remoto,
		/// Nome del file locale (sul disco del client che invia la richiesta)
		$file_locale,
		/// Modalita' di invio del file : FTP_ASCII oppure FTP_BINARY
		$mode) {
		if (!$file_remoto){ $file_remoto=$file_locale; }
		if (!$mode)			{ $mode=FTP_ASCII; } // oppure FTP_BINARY	
		if ($this->RESOURCE && $file_remoto && $file_locale) {			
			if (ftp_get($this->RESOURCE,$file_locale,$file_remoto,$mode)) {
			//if (ftp_put($this->RESOURCE,$_FILES['file']['name'],$_FILES['file']['tmp_name'],$mode)) {
				return 1;
			} else {
				return 0;
			}
		}
	}
	
	function ftpChdir(
		/// Nome della directory dove spostarsi
		$directory) {
		if ($this->RESOURCE && $directory) {
			if (ftp_chdir($this->RESOURCE,$directory)) {
				return 1;
			} else {
				return 0;
			}
		}
	}
	
	function ftpMkdir(
		/// Nome della directory da creare
		$directory) {		
		if ($this->RESOURCE && $directory) {
			if (ftp_mkdir($this->RESOURCE,$directory)) {
				return 1;
// echo "VAFFANCULO";
			} else {
// echo "VAFFANCULO_TE$directory";
				return 0;
			}
		}
	}
	
	function ftpChmod(
		/// Attenzione! funnziona solo in php 5.
		/// Permessi in decimale. Esempio; 755. 
		$mode,
		/// Nome del file al quale modificare i permessi
		$filename) {		
		if ($this->RESOURCE && $mode && $filename) {
			if (ftp_chmod($this->RESOURCE,$mode,$filename)) {
				return 1;
			} else {
				return 0;
			}
		}
	}

	function ftpDelete(
		/// Nome del file da cancellare
		$filename) {		
		if ($this->RESOURCE && $filename) {
			if (ftp_delete($this->RESOURCE,$filename)) {
				return 1;
			} else {
				return 0;
			}
		}
	}

	function ftpLs(
		$directory) {
		if ($this->RESOURCE && $directory) {
			if (ftp_nlist($this->RESOURCE,$directory)) {
				return ftp_nlist($this->RESOURCE,$directory);
			} else {
				return 0;
			}
		}
	}


}
?>
Return current item: Stelib