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/