|
Acest tutorial isi propune abordarea unui nou subiect, acela al lucrului cu fisierele in PHP. Operatiile pot fi efectuate prin intermediul API-ului de manipulare al fisierelor ce ofera facilitati de citire/modificare a atributelor, citire si afisare a continutului directoarelor, editarea permisiunilor, citirea continutului fisierelor intr-o varietate de structuri predefinite dar si cautarea in interiorul fisierelor folosind pattern-uri specifice.
Moduri de operare
Pentru inceput vom deschide un fisier pentru a citi continutul sau. Putem presupune ca exista un fisier pe disc, la adresa: /usr/local/fisiere/, al carui continut ne intereseaza. Pentru a citi continutul acestui fisier trebuie sa urmezi o serie de pasi:
- Deschiderea fisierului si initializarea variabilei de manipulare
- Interactionarea cu fisierul(prin intermediul variabilei de manipulare) si extragerea continutului intr-o variabila PHP
- Inchiderea fisierului
Iata mai jos scriptul aferent pasilor descrisi:
<?php
$file = '/usr/local/fisiere/fisier.txt'
or die('Fisierul nu a putut fi deschis!');
$fh = fopen($file, 'r') or die('Fisierul nu a putut fi deschis!');
$data = fread($fh, filesize($file))
or die('Fisierul nu a putut fi citit!');
fclose($fh);
echo $data;
?>
Rularea acestui script are ca efect afisarea continului fisierului .txt in browser-ul web.
Functia fopen()
Variabila de manipulare a fisierului este initializata prin apelarea functiei ”fopen()” ce accepta 2 parametri: numele(inclusiv calea) fisierului si un string care indica modul de deschidere a fisierului (’r’ pentru citire). Exista mai multe moduri ce pot fi utilizate in functia ”fopen()”:
’r’ – deschidere pentru citire
’w’ – deschidere pentru scriere cu distrugerea continutului existent
’a’ – deschidere pentru scriere cu pastrarea continutului existent (adaugare la sfarsit)
In cazul in care functia ”fopen()” este executata cu succes, valoarea returnata este asimilata variabilei ”$fh”, aceasta fiind de fapt variabila de manipulare a fisierului ce este utilizata in continuare de functia ”fread()”.
Al doilea parametru al functiei ”fread()” este numarul de octeti (bytes) ce va fi citit. Functia ”filesize()” ofera informatii despre dimensiunea fisierului de pe disc.
Inchiderea fisierului
Ultimul pas nu este strict necesar, tocmai pentru faptul ca odata ajuns la finalul executiei scriptului, PHP va inchide in mod automat fisierul, dar este totusi indicata apelarea functiei ”fclose()”. Unul dintre avantajele apelarii din script a functiei de inchidere a fisierului este chiar identificarea sfarsitului blocului de manipulare a fisierului.
O noua functie aparuta in script-ul de mai sus este ”die()”, folosita ca modalitate de afisare a diferitelor mesaje de eroare si terminarea executiei.
Alte abordari
O alta metoda de citire a continutului unui fisier poate fi utilizarea functiei ”file()”, care returneaza un vector cu informatiile cerute. Fiecare element din vectorul creat contine cate o linie din fisier, iar pentru afisarea intregului continut poate fi utilizata instructiunea repetitiva ”foreach()”.
<?php
$file = '/usr/local/fisiere_diverse/fisier.txt'
or die('Fisierul nu a putut fi citit!');
$data = file($file) or die('Fisierul nu a putut fi citit!');
foreach ($data as $line) {
echo $line;
}
?>
In exemplul de mai sus, functia ”file()” deschide fisierul .txt si scrie continutul sau intr-un vector, dupa care inchide fisierul – toate aceste operatii fiind efectuate printr-o singura linie de cod. In cazul in care nu vrei sa citesti continutul fisierului intr-un vector, poti utiliza o alta functie: ”file_get_contents()” (PHP4.3 si PHP5.0), care citeste continutul fisierului intr-o variabila de tip string.
<?php
$file = '/usr/local/fisiere_diverse/fisier.txt' ;
$data = file_get_contents($file)
or die('Fisierul nu a putut fi citit!');
echo $data;
?>
|