Ho scritto la seguente classe:

<?php // 4 o superiore

// classe di gestione semplice database basato su
// un file di testo creata a scopo puramente
// dimostrativo, da non prendere come modello.
class ManagerClienti {

// variabile contenente il path
// completo del file database
var $databaseFile;


// costruttore, accetta
// il nome del file e lo assegna
function ManagerClienti($databaseFile) {
$this->databaseFile = $databaseFile;
}

// metodo per aggiungere
// un cliente al database
function AggiungiCliente($cliente) {

// variabile di controllo esistenza cliente
$esistente = false;

// recupero lista clienti
$clienti = $this->ListaClienti();

// per ogni array cliente presente in lista ..
for($a = 0, $b = count($clienti); $a < $b; $a++) {

// si verifica se il nome è uguale
// a quello da aggiungere
if($clienti[$a][0] === $cliente[0]) {

// in tal caso è un duplicato
// imposto esistente come vero
// ed esco dal ciclo for
$esistente = true;
$a = $b;
}
}

// se non è stato trovato il cliente
// con lo stesso nome
if($esistente === false) {

// si aggiunge alla lista
array_push($clienti, $cliente);

// e si salva tale lista
$this->SalvaLista($clienti);
}

// per eventuali implementazioni
// si fa tornare il valore esistente
// al fine di poter comunicare
// se il cliente fosse già presente o meno
// (cosa che non accade in questo esempio)
return !$esistente;
}

// metodo per eliminare
// un cliente dal database
function EliminaCliente($nomeCliente) {

// variabile array per ricreare la lista
$clienti = array();

// lista di tutti i clienti
$vecchiClienti = $this->ListaClienti();

// per ogni array cliente ...
for($a = 0, $b = count($vecchiClienti); $a < $b; $a++) {

// se il nome non corrisponde ad uno presente in lista
if($vecchiClienti[$a][0] !== $nomeCliente)
// si aggiunge questo cliente alla nuova lista
array_push($clienti, $vecchiClienti[$a]);
}

// si salva la lista clienti
$this->SalvaLista($clienti);
}

// metodo per ricevere
// la lista di tutti i clienti
function ListaClienti() {

// variabili utili per le operazioni di parsing file
$lista = array();
$clienti = array();

// se il database ha almeno un cliente
// quindi pesa più di 0 bytes ...
echo "1";
if(filesize($this->__databaseFile) > 0) {

// per ogni "a capo" del file si crea una lista
$clienti = explode("\r\n", $this->__leggiFile());

// per ogni riga di questa lista
for($a = 0, $b = count($clienti); $a < $b; $a++)

// si crea un cliente separando i dati attraverso il carattere |
array_push($lista, explode('|', $clienti[$a]));
}

// restituzione lista
return $lista;
}

// metodo per salvare su un file di testo
// una lista di clienti
function SalvaLista($clienti) {

// stringa da scrivere sul file
$contenutoFile = "";

// i clienti vengono messi in ordine alfabetico
// (ovvero per nome, non per altro)
// al fine di facilitare l'eventuale ricerca
// o visualizzazione
array_multisort($clienti, SORT_ASC);

// per ogni array cliente ...
for($a = 0, $b = count($clienti); $a < $b; $a++) {

// si aggiunge al contenuto le informazioni
$contenutoFile .= "{$clienti[$a][0]}|{$clienti[$a][1]}|{$clienti[$a][2]}";

// e se non si è all'ultimo cliente ...
if($a < ($b-1))
// si aggiunge l' "a capo" per separare i clienti
$contenutoFile .= "\r\n";
}

// si salva definitivamente il tutto su file
$this->__scriviFile($contenutoFile);
}

// metodo "privato" per leggere il contenuto di un file,
// in questo caso il semplice database testuale
function __leggiFile() {
$contenutoFile = file_get_contents($this->databaseFile);
return $contenutoFile;
}

// metodo "privato" per salvare una stringa sul
// semplice databse testuale
function __scriviFile(&$contenutoFile) {

$fp = fopen($this->databaseFile, "a");
fwrite($fp, $contenutoFile);
fclose($fp);
}
}
?>

il file non viene scritto..qual'è il problema?

tulipan