default-logo

Accesso ai file in PHP

Posted On 01 Gen 2008
Comment: Off

tutorialphpTutorial  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”;



About the Author

Related Posts