Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Utilizzo di flock

  1. #1

    Utilizzo di flock

    Salve a tutti, seguendo il consiglio di andr3a, ho usato la funzione flock in modo da prevenire il reset durante la scrittura di un file di testo in caso di accessi contemporanei.

    Guardando il manuale ho visto che viene usato il questo modo, è corretto?
    Codice PHP:
    $file fopen("messaggi.txt""a+");
    flock($fileLOCK_EX);
    fwrite($file$struct);
    flock($fileLOCK_UN);
    fclose($file); 
    grazie

  2. #2

  3. #3
    Originariamente inviato da Fabio Heller
    Ciao Guido,

    con flock sei al sicuro solo se fai così

    se usi apertura w+

    1) apri un altro file fantoccio
    2) lock del file fantoccio
    3) apertura del file reale
    4) lettura file reale
    5) somma
    6) scrittura file reale
    7) chiusura file reale
    8) unlock file fantoccio
    9) chiusura fantoccio


    Questo perchè 'w' cancella il contenuto del file prima del lock

    se usi apertura r+ invece puoi fare così

    1) apertura del file reale
    2) lock del file reale
    3) lettura file reale
    4) somma
    5) reset posizione puntatore
    6) scrittura file reale
    7) unlock file reale
    8) chiusura file reale

    questo perchè r+ non elimina il contenuto prima del lock
    detto questo, ecco il codice di esempio:
    codice:
    // nome del file
    $myfile = 'myfile.txt';
    
    
    // apertura in r+ e lock del file
    $fp = fopen($myfile, 'r+');
    @flock($fp, LOCK_EX); // la @ è importante
    
    // prendo il contenuto e resetto il file
    $content = fread($fp, filesize($myfile));
    rewind($fp);
    
    // effettuo le modifiche al contenuto ...
    
    // scrivo le modifiche
    fwrite($fp, $newcontent);
    
    // slocko e chiudo
    @flock($fp, LOCK_UN); // la @ è importante
    fclose($fp);
    
    
    
    
    // se dovessi solo leggere invece farei semplicemente
    $content = file_get_contents($myfile);
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  4. #4
    per la serie "a colazioooooneeeee!!"
    http://www.devpro.it/php4_id_101.html ditemi cosa ne pensate anche in pvt, grazie
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    scusate, ma se io alla fine dell'utilizzo di un file, non chiudo il medesimo con fclose?? Che succede??
    PER CASO ti serve un guestbook, completamente personalizzabile?e PER CASO lo vuoi anche gratis e senza pop-up o dialer?E allora prova il nuovo NewAge GuestBook..Niente per caso, tutto perfetto

  6. #6
    Originariamente inviato da peo91919
    scusate, ma se io alla fine dell'utilizzo di un file, non chiudo il medesimo con fclose?? Che succede??
    Si chiude automaticamente alla fine dello script anche se sarebbe buona norma chiudere tutto quello che si apre per rendere le risorse disponibili il prima possibile ed evitare errori futuri, per intenderci se oggi non lo chiudi e tra un anno vengono aggiunte 3000 righe di codice alla fine dello script il tuo file non vinene rilasciato per un tempo maggiore del dovuto

    ciao

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.