• Consiglio Direttivo

    [File e Cartelle] fopen();

    PHP 4, 5
    Sintassi: resource fopen ( string $file , string $mode [, bool $use_include_path [, resource $zcontext ]] )

    fopen è una funzione di PHP utilizzata per aprire un file in lettura e/o scrittura e permettere al nostro script di lavorarci su.
    $file è il file su cui lavoreremo (è possibile indicate anche un percorso oltre al nome del file).
    $mode indica la modalità di apertura del file: sola lettura, lettura e scrittura, etc etc.
    $use_include_path puo' essere impostato a 1 (oppure TRUE) per specificare che si desidera cercare il file nell'include_path di PHP.
    $zcontext contiene un contesto di file opzionale (vedere funzioni Stream).
    Come detto $mode indica il metodo di apertura del file, quì di seguito riportiamo i valori che puo' assumere questo parametro:
    'r' - Apertura in sola lettura, il puntatore viene posizionato all'inizio del file.
    'r+' - Apertura per lettura e scrittura, il puntatore viene posizionato all'inizio del file
    'w' - Apertura per sola scrittura, il puntatore viene posizionato all'inizio del file ed il file viene troncato alla lunghezza zero. Se il file non esiste, tenta di crearlo.
    'w+' - Apertura per lettura e scrittura, il puntatore viene posizionato all'inizio del file ed il file viene troncto alla lunghezza zero. Se il file non esiste, tenta di crearlo.
    'a' - Apertura per solo accodamento. Il puntatore viene posizionato alla fine el file. Se il file non esiste, tenta di crearlo.
    'a+' - Apertura per lettura e scrittura. Il puntatore viene posizionato alla fine del file. Se il file non esiste, tenta di crearlo.
    'x' - Creazione ed apertura del file in sola scrittura. Se il file esiste già la funzione fopen restituirà FALSE e verrà generato un errore di livello E_WARNING.
    'x+' - Creazione ed apertura del file per lettura e scrittura. Se il file esiste già la funzione restituirà ***FALSE ***e verrà generato un errore di livello E_WARNING.
    [php]<?
    $file = "../dir/file.txt";
    $handle = fopen ( $file, 'a+');
    ?>[/php]
    Il risultato della nostra funzione fopen sarà un *handle *che utilizzeremo nel nostro script per elaborare il file con le varie funzioni di cui dispone il PHP. Se l'apertura del file non va a buon fine la funzione restituira' FALSE generando un errore di tipo E_WARNING.
    Importante ricordare che a fine elaborazione del nostro file è fondamentale chiudere lo stesso. Questo è possibile tramite la funzione fclose().


  • Consiglio Direttivo

    E' importante far distinzione sui metodi di gestione dei terminatori di riga per i vari sistemi operativi in uso:
    Unix usa come terminatore di riga \n
    Windows usa come terminatore di riga \r\n
    Mac usa come terminatore di riga \r
    PHP ha una costante denominata PHP_EOL che contiene il carattere di terminazione riga per il sistema operativo in uso.
    In Windows è possibile utilizzare il flag di conversione della modalità testuale ('t') che converte \n in \r\n quando si lavora con il file.
    E' anche possibile utilizzare il flag 'b' per forzare la modalità binaria (consigliata per la portabilità quando si apre un file) e per non convertire questi dati.
    Per utilizzare la modalità testuale o binaria basterà specificare come ultimo carattere di $mode 'b' oppure 't':
    [php]<?
    $file = "../dir/file.txt";
    $handle = fopen ( $file, 'at'); // modalità testuale
    $handle = fopen ( $file, 'ab'); // modalità binaria
    ?>[/php]
    Dalla versione 4.3.2 il mode di default è quello binario per tutte le piattaforme che distinguono fra testuale e binario.
    Qualora si riscontrassero problemi con gli script è consigliabile provare ad usare il flag 't'.


  • Consiglio Direttivo

    Per poter operare sul nostro file è indispensabile avere i permessi adeguati per poter leggere/scrivere il file stesso o comunque operare dentro la directory che lo contiene (o lo conterrà qualora dobbiamo crearlo).
    Diversamente dai server Linux che solitamente non presentato alcuna problematica nella gestione dei permessi CHMOD, su Hosting Windows capita spesso di non poter settare i permessi adeguati a file e directory.
    In questi casi la soluzione deve essere fornita dal gestore dell'Hosting stesso, che solitamente mette a disposizione una directory i cui permessi CHMOD son già impostati a 777 (controllo totale). Ma questa è solo una delle soluzioni possibili, è sempre consigliabile contattare il gestore per risolvere la problematica qualora si riscontrassero problemi con i permessi.