Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Leggere,modificare e salvare file .doc

    Buonasera a tutti,
    io ho questo problema,devo leggere un file .doc con una pagina php.
    Nel dettaglio utilizzo il file pippo.doc come matrice,infatti al suo interno ho inserito delle parole chiave (es. [NOME]) che deve essere sostituito con il vero nome che prendo dal db,una volta modificato mi si deve aprire la finistra per il salvataggio.Riesco già a farlo con un comunissimo file .txt.Apro,modifico e salvo ecco il codice:

    Codice:

    Codice PHP:
    if ($handle opendir('.')) {
        while (
    false !== ($file readdir($handle))) { 
            if (
    $file == "pippo.txt")
      {
      
    $pezzo =  implode("",file($file));
      
    $pezzo =  str_replace("[NOME]""$nome"$pezzo);
    $pezzo str_replace("[COGNOME]""$cognome"$pezzo);

       
    header("Content-type: application/x-word"); 
    header("Content-Disposition: attachment; filename=pippo.txt"); 
    header("Pragma: no-cache"); 
    header("Expires: 0"); 
    print 
    "$pezzo";
      }


    Come faccio se il file nn è txt ma .doc??????????
    Ho provato a puntare semplicemente il file .doc,ma quando me lo salva non ha fatto alcuna modifica
    Grazie

  2. #2
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    i .doc sono file binari, non puoi trattarli come file di testo. Anche se il replace occasionalmente potrebbe funzionare - e' una soluzione sbagliata ed insicura.

    Usa gli .rtf.

  3. #3
    Originariamente inviato da bubi1
    i .doc sono file binari, non puoi trattarli come file di testo. Anche se il replace occasionalmente potrebbe funzionare - e' una soluzione sbagliata ed insicura.

    Usa gli .rtf.
    Quindi devo praticamente utilizzare lo stesso codice che ho postato prima ,ma sostituendo il file.doc con .rtf?
    Corretto?

  4. #4
    Esatto!
    inoltre modifica i replace in questo modo:
    Codice PHP:
    $pezzo =  str_replace("[NOME]""$nome"$pezzo,$nreplaced);
    $pezzo str_replace("[COGNOME]""$cognome"$pezzo,$greplaced); 
    In questo modo nelle variabili $nreplaced e $greplaced viene inserito il numero di volte in cui è avvenuto il replace della parola [NOME] e [COGNOME]. QUindi puoi controllare con un if se il replace è avvenuto almeno una volta, ee quindi se l'operazione è andata a buon fine.

  5. #5
    Piccolo problema come posso fare per leggere/scrivere su un file odt (open office)?Ho provato solo a modificare il nome del file ma non va.
    Il codice cheho utilizzato è simile a quello che ho mess nel primo post.

    Grazie in anticipo

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 © 2024 vBulletin Solutions, Inc. All rights reserved.