Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    561

    Problema con la scrittura di un file di testo

    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

  2. #2
    Utente di HTML.it L'avatar di echoweb
    Registrato dal
    Sep 2008
    Messaggi
    419
    Ciao,

    che errore ti esce?

    Codice PHP:
    function __scriviFile(&$contenutoFile) { 
    quella "e commerciale" è giusta messa li?


    "Non soffocare la tua ispirazione e la tua immaginazione,
    non diventare lo schiavo del tuo modello"

    Vincent van Gogh

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.