Guest dizzy Posted December 21, 2011 Share Posted December 21, 2011 In orice limbaj de programare, si deci si in PHP, cand se lucreaza cu fisiere trebuie efectuate urmatoarele operatiuni:deschiderea fisieruluicitirea din fisier/scrierea in fisierinchiderea fisierului Necesitatea fiecarei operatiuni este probabil usor de inteles. Un fisier trebuie deschis pentru a putea vedea ce este in el - chiar si pentru o secventa de cod aceasta este o necesitate. Scrierea/citirea propriu-zisa reprezinta operatia pentru care fisierul a fost deschis, prin care sunt preluate sau adaugate informatii in fisier. La finalul folosirii fisierului acesta trebuie sa fie inchis, altfel este posibil ca informatiile continute sa se piarda. Instructiunile PHP corespunzatoare operatiilor de mai sus sunt prezentate in cele ce urmeaza. De remarcat este faptul ca trebuie specificat inca de la deschiderea fisierului ce fel de operatii vor avea loc: citire, scriere sau ambele. <?php # deschiderea unui fisier si citirea din el $id_fisier = fopen("c:\\folder\\fisier.txt", 'r'); // deschidere fread( $id_fisier, 10 ); // citire 10 octeti din fisier fclose($id_fisier); // inchidere # deschiderea unui fisier, stergerea continutului si scrierea in el $id_fisier = fopen("c:\\folder\\fisier.txt", 'w'); // deschidere fwrite( $id_fisier, 'Text nou in fisier' ); fclose($id_fisier); // inchidere # deschiderea unui fisier si scrierea la sfarsitul lui $id_fisier = fopen("c:\\folder\\fisier.txt", 'a'); // deschidere fwrite( $id_fisier, 'Text adaugat in fisier' ); fclose($id_fisier); // inchidere ?> Asa cum s-a observat, un mod de deschidere pentru citire ('r') si 2 moduri de deschidere pentru scriere: cu stergere a continutului vechi (modul 'w') si cu pastrare a continutului (modul 'a'), caz in care scrierea se face la sfarsitul fisierului, imediat dupa continutul vechi. Depinde de specificul fiecarei situatii ce mod de scriere trebuie ales. Limbajul PHP dispune si de alte moduri de deschidere a fisierului, care sunt mici variatii ale celor prezentate mai sus. Intrucat sunt folosite doar in anumite situatii nu vor fi prezentate aici. Pentru detalii puteti consulta pagina de documentatie a functiei fopen. Instructiunile de mai sus pot fi folosite cu orice tip de fisier, text sau binar si reprezinta baza in lucrul cu fisierele. Exista o suita de alte functii pentru citirea sau scrierea anumitor tipuri de date specifice, ce pot fi folosite cu ambele tipuri de fisiere. In practica insa, de cele mai multe ori se lucreaza cu instructiuni "utilitare" de manipulare a fisierelor text - instructiuni care simplifica efortul programatorului in special in situatii generale. Aceste functii sunt descrise in cele ce urmeaza. Instructiuni pentru fisiere text Pentru simplificarea codului de citire/scriere a unui fisier in situatii generale, PHP ofera cateva functii foarte convenabile: file_get_contents, file_put_contents si file. Primele doua, dupa cum si numele spune, permit preluarea intregului continut al unui fisier si punerea lui intr-o variabila string, printr-un singur apel, respectiv crearea unui fisier care sa contina valoarea unei variabile (exemple mai jos). Cea de-a treia functie permite crearea unui vector ce are ca elemente liniile fisierului specificat. De exemplu, un fisier cu 3 linii va genera un vector cu 3 elemente, fiecare element reprezentant o linie din fisier. Este important de mentinut ca odata citit continutul fisierului (cu file_get_contents si file) variabilele se "deconecteaza" de fisier, adica orice modificare facuta asupra variabilei nu se reflecta si asupra fisierului, cele 2 entitati fiind separate. <?php // pun tot continutul fisierului intr-o variabila $continut = file_get_contents( 'fisier.txt' ); // in acest moment tot continutul este stocat in variabila $continut // pot procesa continutul sau il pot modifica // adaug ceva la final // Nota: modificarea se face doar in variabila $continut, nu si in fisier $continut = $continut . ' -- Text adaugat de PHP'; // la final salvez variabila $continut intr-un al doilea fisier file_put_contents( 'fisier2.txt', $continut ); // creea un alt fisier care contine 2 cifre doar file_put_contents( 'fisier3.txt', '11' ); // din continutul unui fisier creez un vector format din liniile fisierului $linii = file( 'fisier4.txt' ); echo 'Linia a 3a din fisier este: ', $linii[ 2 ]; ?> Link to comment Share on other sites More sharing options...
Recommended Posts