PHP Lettura da un file


Esempio

Durante la lettura da un file, vogliamo essere in grado di sapere quando abbiamo raggiunto la fine di quel file. Sapendo che fgets() restituisce false alla fine del file, potremmo usarlo come condizione per un ciclo. Tuttavia, se i dati restituiti dall'ultima lettura risultano essere qualcosa che viene valutato come booleano false , è possibile che il nostro ciclo di lettura file si interrompa prematuramente.

$handle = fopen ("/path/to/my/file", "r");

if ($handle === false) {
    throw new Exception ("Failed to open file for reading");
}

while ($data = fgets($handle)) {
    echo ("Current file line is $data\n");
}

fclose ($handle);

Se il file da leggere contiene una riga vuota, il ciclo while verrà terminato in quel punto, poiché la stringa vuota viene valutata come booleana false .

Invece, possiamo verificare esplicitamente il valore false booleano, usando operatori di uguaglianza rigorosa :

while (($data = fgets($handle)) !== false) {
    echo ("Current file line is $data\n");
}

Nota questo è un esempio forzato; nella vita reale useremmo il seguente ciclo:

while (!feof($handle)) {
    $data = fgets($handle);
    echo ("Current file line is $data\n");
}

O sostituire il tutto con:

$filedata = file("/path/to/my/file");
foreach ($filedata as $data) {
    echo ("Current file line is $data\n");
}