Lucrul cu fisierele si directoarele

Post Title

In orice situatie reala, este importanta stocarea si regasirea datelor ( informatii) , fisierul este un mod de stocare a

informatiilor, iar directoarele sunt un mod de organizare a fisierelor.

Pentru inceput o sa ne axam pe directaore, iar php pune la dispozitie o gama de functii pentru lucrul cu acestea.

 

Aceasta functie deschide un director pentru citire,mai jos o sa dau un exemplu de folosire a acestei functii:
 
  1.  
  2. <?php
  3. $dir="D://curs"; //directorul care dorim sa il deschidem
  4. //verificam daca $dir este director
  5. if(is_dir($dir)){
  6. //deschidem directorul
  7. if($deschis=opendir($dir)){ //va merge aceasta atriburire datorita prioritati operatorului "="
  8. echo 'Fisierul a fost deschis cu succes';}
  9. else{
  10. echo 'Fisierul nu a putut fi deschis';}
  11. }else{
  12. echo $dir.' nu este director';}
  13. ?>

       

       Daca o sa aveti in D acest director si bineinteles daca si permisiunile va permit atunci o sa primiti mesaj de succes la deschidere.

 

 
      Important de retinut la aceasta functie este ca are nevoie de operatorul identic(===) si nu (==) pentru a testa egalitatea si returneaza automat false daca directorul nu mai contine fisiere, mai jos o sa prezint un exemplu.
 
  1.  
  2. <?php
  3. $dir="D://curs"; //directorul care dorim sa il deschidem
  4. //verificam daca $dir este director
  5. if(is_dir($dir)){
  6. //deschidem directorul
  7. if($deschis=opendir($dir)){ //va merge aceasta atriburire datorita prioritati operatorului "="
  8. //preluam lista de fisiere si subdirectoare din director
  9. while(($fisiere=readdir($deschis))!==false){//daca sunt inca fisiere
  10. //afisam numele fisierelor
  11. echo $fisiere.'<br>';
  12. }
  13. } else{
  14. echo 'Fisierul nu a putut fi deschis';}
  15. }else{
  16. echo $dir.' nu este director';}
  17. ?>
  18.  
  19.  
     Outputul va fi unul asemnanator:
 
.
..
test.docx
test.txt
 
 
       Spre desosebire de celelalte doua functii de mai sus care trebuie combinate pentru a putea extrage fisierele functia scandir face asta dintr-un singur pas, iar rezultatul este un array , cu alte cuvinte o functie mai eleganta, insa desavantajul este ca nu se poate folosi in php v4 doar de la v5 se poate folosi.
 
  1.  
  2. <?php
  3. $dir="D://curs"; //directorul care dorim sa il deschidem
  4. //verificam daca $dir este director
  5. if(is_dir($dir)){
  6. //preluam fisierele
  7. $fisiere=scandir($dir);
  8. //afisam fisierele
  9. print_r($fisiere);
  10. }else{
  11. echo $dir.' nu este director';}
  12. ?>

       

    Outputul va fi asemanator cu:

  1.  
  2.  
  3. [0] => .
  4.  
  5. [1] => ..
  6.  
  7. [2] => test.docx
  8.  
  9. [3] => test.txt )

 

        Continuam cu functiile pentru lucrul cu fisiere:

 

        Functia fopen deschide un fisier intr-un anumit mod ( adica, citire sau scriere + alte combinatii), pentru a vedea intreg tabelul de moduri dati click pe numele functiei.

 

  1.  
  2. <?php
  3. $fisier="D://curs/test.txt"; //fisierul care dorim sa il deschidem
  4. //deschidem fisierul in scriere si citire
  5. if($deschis[email protected]fopen($fisier,"r+")){
  6. echo 'fisierul a fost deschis cu succes'; //va afisa acest mesaj in cazul in care fisierul poate fi deschis
  7. }
  8. else{
  9. echo 'fisierul nu poate fi deschis';//va afisa acest mesaj in cazul in care nu exista fisierul sau nu sunt permisiunii
  10. }
  11. ?>

 

       Folosim functia fread impreuna cu functia fopen pentru a putea citi continutul unui fisier, mai jos o sa dau un exemplu

 

  1.  
  2. <?php
  3. $fisier="D://curs/test.txt"; //fisierul care dorim sa il deschidem
  4. //deschidem fisierul in scriere si citire
  5. if($deschis[email protected]fopen($fisier,"r+")){
  6. $continut[email protected]fread($deschis,filesize($fisier));
  7. echo '<pre>'.$continut.'</pre>'; // daca fisierul contine text va returna textul
  8. }else{
  9. echo 'fisierul nu poate fi deschis';
  10. }
  11. ?>

 

     Functia fread are nevoie si de lungimea in biti care sa poata fi citita din fisier, iar pentru asta am folosit functia filesize

 

        Folosim aceasta functie pentru a putea scrie intr-un fisier, functia are 2 parametri resursa deschideri fisierului data de fopen si stringul care va fi scris, iar mai jos o sa dau un exemplu.(ps nu uitati ca sa deschideti fisierul pentru scriere daca doriti sa scrieti in el.

  1.  
  2. <?php
  3. $fisier="D://curs/test.txt"; //fisierul care dorim sa il deschidem
  4. //deschidem fisierul in scriere si citire
  5. if($deschis[email protected]fopen($fisier,"a+")){
  6. //atribuim variabilei stringul care dorim sa il scriem
  7. $string='Test de scriere in fisier';
  8. //scriem in fisier
  9. fwrite($deschis, $string);
  10. }else{
  11. echo 'fisierul nu poate fi deschis';
  12. }
  13. ?>

 

     Daca totul merge bine fisierul ar trebui sa arate astfel

 

fisierul dupa ce a fost scris in el

  •  Functia fclose : Aceasta functie se foloseste de fiecare data cand un fisier a fost deshis cu alt cuvinte dupa ce ati folosit fopen se foloseste si fclose si este si recomandat.

 

  • Functiile file_put_contents si file_get_contents , aceste doua functii scutesc programatorul de munca in plus cum ar fi deshiderea si inchiderea fisierului, problema e ca una a aparut de la versiunea 4.3 si cealalata de la versiunea 5 a php-ului.

 

  1.          file_get_contents exemplu:

 

  1.  
  2. <?php
  3. //fisierul care dorim sa il deschidem
  4. $fisier="D://curs/test.txt";
  5. //preluam continutul fiserului si il afisam
  6. echo '<pre>'.file_get_contents($fisier).'</pre>';
  7. ?>

 

          Daca fisierul exista si poate fi citit o sa vi se afiseze continutul 

  1.  
  2. Vizitati micul-programato.ro
  3. Test de scriere in fisier
     2.file_put_contents poate sa adauge intr-un fisier intr-un anumit mod in functie de parametrul trei.(de exemplu pentru apend folosim  "FILE_APPEND";

Primul parametru reprezinta sursa in care va fi scris iar parametrul doi reprezinta ce va fi scris in fisierul sursa, mai jos este un exemplu

 
  1.  
  2. <?php
  3. //fisierul care dorim sa il deschidem
  4. $fisier="D://curs/test.txt";
  5. //scriem in fisier in modul append
  6. file_put_contents($fisier,PHP_EOL.'Test pentru file_put_contents',FILE_APPEND);
  7. //am pus PHP_EOL pentru a incepe de pe linie noua
  8. ?>

 

     Daca totul e ok fisierul ar trebui sa arate astfel

 

file_put_contents

 

Cam atat despre fisiere si directoare, acest tutorial ca si celelalte sunt protejate prin copyright-ul micul-programator si nu pot fi instrainate decat prin preluarea surselor.

 

Autor articol

Ştiinţa fără religie este şchioapă, religia fără ştiinţă este oarbă (Albert Einstein)

Acest articol nu este comentat, fii primul care o face

Trebuie sa fii logat sa poti lasa un comentariu Autentificare Inregistrare Logare cu Facebook
top