Accesso ai file in PHP
Tutorial PHP – In PHP risulta molto comodo l’utilizzo di files per la lettura e/o scrittura (vedi utilizzo di un contatore visite via WEB): la sintassi principale è stata ripresa dal C semplificandola cercando il più possibile di rendere facile l’utilizzo di molte chiamate, eliminando tutto ciò che è superfluo.
Funzioni principali per l’accesso ai files
* fopen, fclose
* fgets, feof
* fstat
fopen apre un file
La sintassi della fopen è:
$esito = fopen($nome_file, $modalita)
dove:
* $nome_file è la stringa che indica il file da aprire, completo di percorso
* $modalita è il modo in cui vogliamo aprire il file: può essere
* r r+, rispettivamente sola lettura, lettura e scrittura
* w w+, rispettivamente sola scrittura, lettura e scrittura, troncando il file a zero.
* a a+, rispettivamente sola scrittura, lettura e scrittura, per aggiungere dati in fondo al file
* x x+, come w e w+, però non tronca il file se esiste già
* in $esito otteniamo l’identificativo del file per poterlo leggere o scrivere in seguito.
fclose chiude un file
La sintassi della fclose è:
$esito = fclose($id_file)
dove:
* $id_file è l’identificativo restituito dalla fopen
* in $esito otteniamo TRUE o FALSE, a seconda se si è riuscito o meno a chiudere il file
fgets legge una riga da un file
La sintassi della fgets è:
$esito = fgets($id_file, $lunghezza)
dove:
* $id_file è l’identificativo restituito dalla fopen
* $lunghezza è il numero di caratteri da leggere; se si incontra prima il carattere di fine riga (EOL), la lettura viene interrotta.
* in $esito otteniamo TRUE o FALSE, a seconda se si è riuscito o meno a chiudere il file
feof Controlla se si è raggiunta la fine di un file
La sintassi della feof è:
$esito = feof($id_file)
dove:
* $id_file è l’identificativo restituito dalla fopen
* in $esito otteniamo TRUE o FALSE, a seconda se si è raggiunta o meno la fine del file
fstat Legge informazioni su un file aperto
La sintassi della fstat è:
$esito = feof($id_file)
dove:
* $id_file è l’identificativo restituito dalla fopen
* in $esito otteniamo un array i cui elementi hanno il seguente significato:
1. device
2. inode
3. numero di link
4. user id del proprietario
5. group id del proprietario
6. tipo di device se è presente l’inode device *
7. dimensione in byte
8. ora dell’ultimo accesso
9. ora dell’ultima modifica
10. ora del ultimo cambiamento
11. blocksize per l’I/O del filesystem *
12. numero di blocchi allocati
Vediamo un esempio di tutte queste funzioni:
file.php
#!/usr/bin/php -q
<?php
$file = fopen(“file.php”,”r”);
$stato = fstat($file);
$descrizione = array(“”,”inode”,”device”,”numero di link”,”user id del proprietario”,”group id del proprietario”,
“tipo di device”,”dimensione”,
“ora ultimo accesso”,”ora ultima modifica”,”ora ultimo cambiamento”,
“blocksize”,”blocchi allocati”);
echo “OUTPUT DELLA FSTAT \n”;
echo “********************************************\n”;
for ($i = 1; $i < 13; $i++)
if ($stato[$i] >= 0)
echo “$i $descrizione[$i]: $stato[$i]\n”;
echo “********************************************\n”;
echo “\n\nCONTENUTO DEL FILE\n”;
echo “********************************************\n”;
while (!feof($file)) {
$riga = fgets($file,2000);
echo $riga;
}
echo “********************************************\n”;