E' da un pò che sto cercando di fare questo script per modificare un file .rtf ma mi da sempre problemi con il codice
Dovrebbero uscire 3 variabili. Invece mi da errore all'Offset [1]
il file .rtf è strutturato così
ecco lo script intero, le variabili $_POST le trasferisci già controllato!
PHP:
$esploso=explode("<TESTO>",$contenuto);
Dovrebbero uscire 3 variabili. Invece mi da errore all'Offset [1]
il file .rtf è strutturato così
Codice:
HEADER
<TESTO>
<NOME>
<VIA>
<CIVICO>
<CAP>
<COMUNE>
<PROVINCIA>
<PRATICA>
<COGNOME>
<LOCALITA>
<TESTO>
Footer
ecco lo script intero, le variabili $_POST le trasferisci già controllato!
PHP:
if($_POST)
{
$nome = $_POST['nome'];
$cognome = $_POST['cognome'];
$via = $_POST['via'];
$civico = $_POST['civico'];
$cap = $_POST['cap'];
$comune = $_POST['comune'];
$provincia = $_POST['provincia'];
$pratica = $_POST['pratica'];
$localita = $_POST['localita'];
$file="docs.rtf";
# Definiamo il nome del file da utilizzare
$fp=fopen($file,"rt");
# Apriamo un puntatore al file
$contenuto=fread($fp,filesize($file));
# Ne leggiamo il contenuto
$cerca=array("<NOME>","<VIA>","<CIVICO>","<CAP>","<COMUNE>","<PROVINCIA>","<PRATICA>","<COGNOME>","<LOCALITA>");
# Definiamo quali sono i tag da andare a cercare per sostituirli
$sosti=array($nome,$via,$civico,$cap,$comune,$provincia,$pratica,$cognome,$localita);
# I dati da usare per sostituirli
# Potrebbe essere il risultato di una query SQL
$contenuto_finale="";
# Definiamo la variabile che conterra il contenuto finale
$esploso=explode("<TESTO>",$contenuto);
# Esplodiamo l'intero file RTF per la stringa <BLABLABLA>
$header=$esploso[0];
# Cosi, in posizione 0 abbiamo tutto l'header RTF
$testo=$esploso[1];
# Qua abbiamo il contenuto dell'RTF
$footer=$esploso[2];
# E qui abbiamo la chiusura dell'RTF
$sostituzione=str_replace($cerca,$sosti,$testo);
# Andiamo a sostituire i tag con i valori reali
$contenuto_finale.=$sostituzione;
# Aggiungiamo una pagina nuova al nostro file "page" e il tag RTF per farlo
# Eseguiamo il ciclo 5 volte (in realta bisognerebbe fare un foreach sull'array, ma questo e solo un esempio
header('Content-Type: application/rtf');
# Mandiamo al browser un header che indica il tipo di file che stiamo inviando
header("Content-Disposition: attachment; filename=FTV_015802_" . $cognome . "_" . $pratica . ".doc");
# Diciamogli di scaricarselo e diamogli un nome, il .doc e per ingannare l'operatore che si crede di aver scaricato un vero doc di Word...
echo $header.$contenuto_finale.$footer;
# Buttiamo fuori l'output, concatenando header, contenuto e footer
}
else
{ exit;}