Ce face file
file este varianta scurtă pentru citirea pe linii: un singur apel, fără fopen și buclă. Fiecare element păstrează implicit linia nouă de la final.
Opțiuni utile: FILE_IGNORE_NEW_LINES elimină \n de la final, iar FILE_SKIP_EMPTY_LINES sare peste liniile goale (funcționează doar împreună cu prima). Tot fișierul ajunge în memorie, deci pentru fișiere foarte mari folosește fgets.
Parametri
| Parametru | Descriere |
|---|---|
$filename |
Calea fișierului sau o adresă web. |
$flags |
Opțional. FILE_IGNORE_NEW_LINES, FILE_SKIP_EMPTY_LINES, FILE_USE_INCLUDE_PATH. |
$context |
Opțional. Un context de stream. |
Ce returnează
Un tablou cu liniile sau false la eroare.
Exemple
Exemplul 1: Liniile, cu și fără \n
<?php
file_put_contents("nume.txt", "Ana\nIon\nMaria\n");
var_dump(file("nume.txt")[0]);
var_dump(file("nume.txt", FILE_IGNORE_NEW_LINES)[0]);
Rezultat
string(4) "Ana
"
string(3) "Ana"
Exemplul 2: Fără linii goale
<?php
file_put_contents("emailuri.txt", "ana@exemplu.ro\n\nion@exemplu.ro\n\n");
$emailuri = file("emailuri.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
print_r($emailuri);
Rezultat
Array
(
[0] => ana@exemplu.ro
[1] => ion@exemplu.ro
)
Exemplul 3: Ultimele două linii dintr-un jurnal
<?php
file_put_contents("acces.log", "10:00 /\n10:01 /blog\n10:02 /contact\n10:03 /invata\n");
$ultimele = array_slice(file("acces.log", FILE_IGNORE_NEW_LINES), -2);
echo implode("\n", $ultimele);
Rezultat
10:02 /contact
10:03 /invata
Greșeli frecvente
- Compari elementele cu un text fără
FILE_IGNORE_NEW_LINES."Ana\n" === "Ana"estefalse. - Folosești doar
FILE_SKIP_EMPTY_LINESși liniile goale rămân. Opțiunea are efect doar împreună cuFILE_IGNORE_NEW_LINES.
Comenzi înrudite
file_get_contents: Citește tot conținutul unui fișier (sau al unei adrese URL) într-un text.fgets: Citește o linie dintr-un fișier deschis cu fopen.explode: Împarte un text în bucăți după un separator și le pune într-un tablou.