PHP: interagire con i file
Transcript
PHP: interagire con i file
PHP: interagire con i file Pasqualetti Veronica Apertura p file 2 Quando si apre un file, bisogna specificare le seguenti informazioni: Se lo si vuole aprire in sola lettura, in sola scrittura, o in lettura e scrittura Se si vuole che il p puntatore sia p posizionato all’inizio o alla fine del file Cosa C f fare se il file fil non esiste i Apertura p file: i modi 3 In PHP, PHP un file si apre con il comando fopen(filename, fopen(filename mode), mode) dove il mode può essere uno dei seguenti: Mode Descrizione ‘r’ Solo lettura, puntatore all’inizio del file ‘r+’ Lettura e scrittura, puntatore all’inizio del file ‘w’ w Solo scrittura, puntatore all all’inizio inizio del file. Se il file non esiste, tenta di crearlo ‘w+’ Lettura e scrittura, puntatore all’inizio del file. Se il file non esiste, tenta di crearlo ‘a’ a Solo scrittura, scrittura puntatore alla fine del file. file Se il file non esiste, esiste tenta di crearlo ‘a+’ Lettura e scrittura, puntatore alla fine del file. Se il file non esiste, tenta di crearlo ‘x’ Solo Scrittura. Crea un nuovo file. Restituisce FALSE e un errore se il file esiste già ‘x+’ Lettura/Scrittura. Crea un nuovo file. Restituisce FALSE e un errore se il file esiste già Chiusura di un file e controllo fine file La chiusura di un file La funzione fclose() viene utilizzata per chiudere un file aperto. Controllo fine file La funzione feof () controlla se è stata raggiunta la fine del file (EOF). La funzione feof () è utile con i cicli quando non si conosce la lunghezza del file. file Nota: non è possibile leggere da file aperti in w , a e x if (feof (f f ($ fil file)) )) echo h "Fine "Fi d dell fil file"; " Lettura da file 5 In PHP, PHP un file si legge con il comando fread(risorsa,lunghezza), fread(risorsa lunghezza) dove la lunghezza dice fino a che punto si vuole leggere il file. Per esempio: <?php $nomefile = "prova.txt"; $handle = fopen ($nomefile, "r"); // Se fopen () non è in grado di aprire il file specificato, restituisce 0 (falso) $contenuto = fread ($handle, ($handle filesize $nomefile)); fclose ($handle); ?> Lettura di un file riga g p per riga g La funzione fgets () viene utilizzata per leggere una sola riga da un file. Dopo una chiamata a questa funzione il puntatore del file si è spostato alla riga successiva. successiva Esempio <?php $file = fopen( fopen("benvenuto benvenuto.txt txt", "r") r ) or exit( exit("Impossibile Impossibile aprire il file!"); //Fino a che ha raggiunto la fine fai un output della riga while(!feof($file)) { echo fgets($file). "<br />"; } fclose($file); ?> Lettura di un file di carattere in carattere La funzione fgetc () viene utilizzata per leggere un singolo carattere da un file. Nota: Dopo una chiamata a questa funzione il puntatore del file si sposta al carattere successivo Esempio <?php p p $file=fopen("benvenuto.txt","r") or exit("Impossibile aprire il file!"); while (!feof($file)) { echo fgetc($file); } fclose($file); ?> Scrittura su file 8 In PHP PHP, un file si scrive con il comando fwrite(risorsa, fwrite(risorsa stringa). Esempio p di scrittura all’inizio del file: <?php $nomefile="gatta.txt"; $testo="Tanto va la gatta al lardo che ci lascia lo zampino"; $handle = fopen($nomefile, 'w'); fwrite($handle, $testo); fclose($handle); ?> Esempio p 9 fwrite($handle, “<HTML>\n”); fwrite($handle, “<BODY>\n”); fwrite($handle, “<TABLE>\n”); f rite($handle “<TR>\n”); fwrite($handle, “<TR>\n”) fwrite($handle, “<TD>Nome</TD><TD>$_POST[nome]</TD>\n”); fwrite($handle, “</TR>\n”); fwrite($handle “</TABLE>\n”); fwrite($handle, </TABLE>\n ); fwrite($handle, “</BODY>”); fwrite($handle, “</HTML>”); Scrittura su file - append pp 10 Esempio E i di scrittura itt i fondo in f d all fil file ((append): d) <?php $ $nomefile="gatta.txt"; fil " " $testo="Tanto va la gatta al lardo che ci lascia lo zampino"; $handle = fopen($nomefile, ‘a'); fwrite($handle, $testo); fclose($handle); ?> Creare file Word o Excel Gestendo correttamente le intestazione delle pagine PHP è possibile creare documenti Microsoft Word o Microsoft Excel dinamicamente. <? ?> <? header("Content-Type: application/msword"); header (("Content-Type: Content Type: application/vnd.ms application/vnd.msexcel"); ?> Esempio p creazione file Word <?php p p $filename="prova.doc"; header("Content-Type: application/msword"); header ("Content-Disposition: inline; filename=$filename"); ?> <html> <body> <p>Tabella in Word</p> <table> t bl <?php for ($i=1;$i < 5; $i++){ echo "<tr>"; for ($j=1; $j<11;$j++){ $a = $i * $j; echo "<td>$a</td>"; } echo "</tr>"; } ?> </table> </body></html> Esempio p creazione file Excel <?php p p $filename="prova.xls"; header ("Content-Type: application/vnd.ms-excel"); header ("Content-Disposition: inline; filename=$filename"); ?> <html> <body> <table> <?php ? h for ($i=1;$i < =5; $i++){ echo "<tr>"; for ($j=1; $j<11;$j++){ $a = $i * $j; echo "<td>$a</td>"; } echo "</tr>"; / ; } ?> </table> </body></html> PHP ed EXCEL: la lettura Per P leggere l un file fil xls l di Excel E l con php h non è sufficiente ffi i t la lettura con fread (vedere esempio 3leggere_excel.php). Esistono script in rete che ci possono aiutare, aiutare ad esempio la classe ExcelReader L'utilizzo è molto semplice: Si deve creare un oggetto di tipo Spreadsheet_Excel_Reader e indicare il file XLS da analizzare. Alcuni esempi si possono trovare al link http://code google com/p/php-excel-reader/ http://code.google.com/p/php excel reader/