Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25
  1. #1

    Modalità apertura file

    Apro un file XML con:
    Codice PHP:
    $fp=fopen("file.xml","r+"); 
    Faccio le opportune modifiche al file quindi lo salvo con:
    Codice PHP:
    fwrite($fp,$xml); 
    Nel file rimane il contenuto vecchio e viene aggiunto sotto quello nuovo.
    Lo apro nella modalità sbagliata?

  2. #2
    Esegui un fseek() prima della scrittura?
    Hai verificato che la variabile $xml contenga il contenuto aggiornato?

  3. #3
    Non eseguo fseek().
    La variabile $xml contiene il contenuto aggiornato.

  4. #4
    Originariamente inviato da starcraftworld
    Non eseguo fseek().
    Allora stai aggiungendo il contenuto alla fine del file...

  5. #5
    Di per se aprendolo in r+ il puntatore è posizionato all'inizio del file... Ma se lo leggi e poi ti dimentichi il puntatore alla fine, ovviamente scriverà a partire da lì.
    Puoi usare rewind() o meglio utilizzare un file temporaneo di supporto.

    Edit: che lento che sono a scrivere!

  6. #6
    Con fseek() e rewind() se ho capito bene porto il puntatore all'inizio del file ma non cancello quello che è scritto sotto...quindi se il nuovo contenuto è più corto del vecchio viene fuori un pasticcio?

  7. #7
    cercare sul manuale no, eh?
    http://www.php.net/ftruncate
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  8. #8
    Avevo cercato le funzioni di cui si era parlato, non prevedo ancora il futuro
    Quindi ftruncate è come le altre due ma cancella anche il contenuto del file, ho capito bene?

  9. #9
    Originariamente inviato da starcraftworld
    Avevo cercato le funzioni di cui si era parlato, non prevedo ancora il futuro
    Quindi ftruncate è come le altre due ma cancella anche il contenuto del file, ho capito bene?
    reimposta la dimensione del file ... è a questo che mi riferivo quando ho detto "cercare sul manuale no, eh?": come sul manuale c'era scritto di ftruncate (ad esempio tra i commenti di fopen), c'è anche scritto a cosa serve ftruncate

    http://www.php.net/ftruncate
    Takes the filepointer, handle , and truncates the file to length, size .
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  10. #10
    Ho provato:
    Codice PHP:
    ftruncate($fp,0); 
    ma al posto del vecchio contenuto mette una lunga serie di NULL e solo alla fine va a scrivere il nuovo contenuto.

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.