Cauta rapid aici ↑

Fisiere si directoare

PHP este un limbaj ce ruleaza pe partea de server si din moment ce ruleaza in acest loc atunci acesta are acces la fisiere si directoare. PHP poate creea, modifica sau sterge orice fisier sau director pe care il poate accesa si are drepturi in aceasta privinta. PHP va putea face toate acestea printr-o serie de functii predefinite ale limbajului.

In PHP exista doua constante care ne pot ajuta sa aflam calea absoluta in sistemul de operare a unui fisier sau a unui director in care acestea sunt declarate. Aceste constante au inainte si dupa cate doua caractere underscore si sunt scrise obligatoriu cu litera mare. Nu mai este cazul sa spun care este una si care este cealanta pentru ca numele lor sunt mai mult decat intuitive. __FILE__ si __DIR__

Pe langa aceste doua constante vreau sa va mai prezint o constanta care va returna un numar reprezentand pe ce linie din respectivul fisier se afla aceasta constanta. Numele acestei constante este __LINE__. Un aspect la aceasta constanta este ca numarul returnat poate fi diferit daca in respectivul fisier PHP am inclus inainte continutul unui alt fisier PHP si apoi am vrut sa afisam in browser linia pe care aceasta constanta se afla.

Testarea daca un fisier sau director exista

Inainte de a ne apuca sa lucram cu fisiere sau directoare va trebui sa vedem daca acestea exista si in cazul in care exista atunci putem lucra cu ele, in cazul in care acestea nu exista atunci putem incepe sa le cream, dar despre crearea fisierelor vom vorbi mai tarziu. Acum este timpul sa vedem cum putem vedea daca un fisier sau un director exista. Vom putea face asta folosindu-ne de functia file_exists. Aceasta va avea un singur parametru si va reprezenta calea absoluta sau relativa in sistemul de operare catre un fisier. Functia file_exists va returna true in cazul in care calea catre acel fisier este corecta si false in caz contrar.

    	echo file_exists(__FILE__) ? 'true' : 'false';
        // aceasta declaratie va returna intotdeauna true
    

In PHP avem o functie cu care vom putea afla numele unui director iar aceasta functie are un nume mai mult decat intuitiv. Functia va returna un string care va reprezenta calea absoluta in sistem pana la directorul in care fisierul respectiv are urmatoarea linie de cod.

echo dirname(__FILE__);

Acum ca am facut cunostinta cu aceste doua functii, este timpul sa le folosim mai mult iar urmatoarea linie de cod va testa daca un fisier exista. Ne vom folosi de functia dirname pentru a afla calea in sistem pana la acest director iar apoi vom construi calea pana la fisierul despre care presupunem ca exista si in functie de ce returneaza functia vom vedea true sau false.

echo file_exists(dirname(__FILE__) . '/test.txt') ? 'true' : 'false';

Functia file_exists va returna true si in cazul in care testati existenta unui director si puteti test exemplul anterior fara a mai construi string-ul pana la fisier.

Acum este timpul sa testam si mai mult un fisier sau un director si vom putea face asta cu ajutorul functiilor is_file si is_dir. Aceste doua functii vor avea un singur parametru, parametru declarat identic ca si in cazul functiilor anterioare. In PHP veti gasi multe functii care vor incepe cu → is_ ← si din cate stiu toate vor returna true sau false.

echo is_file(__FILE__) ? 'true' : 'false'; // si aceasta declaratie va returna intotdeauna true 

Nu stiu daca ati testat pana in prezent componenta unui director in command prompt. Daca ati testat atunci presupun ca stiti de existenta a doua directoare ce sunt declarate cu doua puncte si respectiv un singur punct. Acela cu doua puncte face referire la directorul parinte in care acest director se afla iar acela cu un singur punct va face referire la acest director.

    	echo is_dir(dirname(__FILE__)) ? 'true' : 'false'; // true
		echo is_dir(dirname('..') ? 'true' : 'false'; // true
		echo is_dir(dirname('.') ? 'true' : 'false'; // true
    

Drepturi de acces

Drepturile de acces reprezinta o componenta de securitate vitala asupra fisierelor si directoarelor intr-un sistem de operare. In PHP vom putea adauga inca un strat de securitate asupra fisierelor si directoarelor si prin acest strat vom putea atribui diferite drepturi mai multor tipuri de utilizatori. Acesti utilizatori pot fi diferite persoane care vor avea cont pe site-ul nostru sau pot fi persoane care nu au cont pe site-ul nostru si in functie de tipul utilizatorului vor avea diferite drepturi.

Aceste drepturi reprezinta posibilitatea unei persoane sa citeasca un fisier sau director, sa creeze un fisier sau director si sa scrie in el sau sa il modifice si in cele din urma sa execute acel fisier. Executarea unui fisier reprezinta rularea unui fisier (ce are extensia .exe (pentru platforma Windows) sau o alta extensie in functie de sistemul de operare) cu scopul de a instala o componenta software iar in PHP nu este cazul de asa ceva.

Observati ca nu am adus vorba despre admin si asta pentru ca acesta esti chiar tu cel care ofera aceste drepturi iar tu vei avea toate drepturile asupra fisierelor si directoarelor din intreg site-ul pe cand un utilizator ce are cont pe site va avea drepturi de vizualizare, creare si modificare asupra fisierelor si directoarelor pe care el le creeaza iar un utilizator care doar viziteaza pagina va avea drepturi doar de vizualizare sau de citire a pagini web. Urmatorul tabel va completa aceasta informatie.

admin utilizator cu cont utilizator fara cont
read(r) yes yes yes
write(w) yes yes no
execute(x) yes no no
rwx rw- r--

Observati ca in tabelul anterior v-am prezentat si acronimul pentru fiecare drept in parte si in cazul in care un drept nu ii este atribuit unui grup atunci acesta va fi inlocuit cu o liniuta. Tot asa veti vedea si in command prompt daca veti incerca sa vedeti continutul unui director. Aceste acronime mai poarta denumirea si de symbolic notation si este prezent inca de la aparitia sistemului UNIX.

Pe langa symbolic notation mai avem si octal notation iar acesta este reprezentarea prin numere a drepturilor. Pentru a face ca drepturile scrise in octal sa fie recunoscute in symbol va trebui sa facem o conversie. Tabelul urmator va reprezenta conversia intre symbolic si notation.

r = 4
w = 2
x = 1
- = 0

Acum ca intelegem ambele notatii, este timpul sa vedem in octal cum arata drepturile pentru admin, utilizatori cu cont si fara cont si la fel ca si pana acum vom vedea acestea intr-un tabel.

rwx = 7
rw- = 6
r-- = 4

EXTRA

Daca veti incerca sa vedeti continutul unui director de pe calculatorul propriu din GIT BASH command prompt veti vedea cateva coloane. In prima coloana din stanga veti vedea drepturile de acces asupra fisierelor si directoarelor in formatul reprezentat prin litere (symbolic notation), apoi o alta coloana pe care nu o luati in seama si dupa aceasta o coloana cu numele adminului ce reprezinta numele calculatorului pe care l-ati trecut in momentul cand ati instalat sistemul de operare. Urmatoarea coloana va reprezenta utilizatori cu cont si cel mai adesea veti vedea o reprezentare numerica a acestora sau cuvantul cheie staff daca sunteti pe Mac. Aceste informatii pot fi afisate diferit in functie de sistemul de operare.

In sistemul UNIX aceste grupuri au denumirea de user, group si other unde user reprezinta admin, group reprezinta utilizatori cu cont si other reprezinta utilizatori fara cont.

Aflarea drepturilor de acces

In PHP avem posibilitatea sa aflam ce drepturi avem asupra unui fisier iar modalitatea prin care vom putea face asta este prin folosirea functiei fileperms. Aceasta va avea un singur parametru si reprezinta calea catre fisierul asupra careia vrem sa aflam drepturile de acces.

echo fileperms('test.txt'); // va afisa 33206 reprezentand o valoare in format zecimal

Dupa cum se poate vedea cu ochiul liber cifrele returnate nu reprezinta o valoare in format octal si nici o valoare in format symbol. Totusi vom avea nevoie sa convertim aceasta valoare in format octal si vom face asta prin folosirea functiei decoct care va primi ca valoare functia fileperms cu tot cu parametru. Acest mod de lucru nu este obligatoriu iar voi puteti sa stocati valoarea returnata de functia fileperms intr-o variabila si apoi sa folositi variabila in interiorul functiei decoct. Numele functiei este prescurtarea de la decimal to octal.

echo decoct(fileperms('test.txt')); // va afisa 100666

Nici aici nu avem o reprezentare exacta a ceea ce ne dorim sa vedem si in acest caz vom putea ignora primele doua cifre.

O alta modalitate prin care vom putea afla daca putem citi sau scrie intr-un fisier este prin folosirea a doua functi care vor returna true sau false in functie de ce drepturi avem asupra acelui fisier.

    	echo is_readable('test.txt') ? 'da' : 'nu';
        echo is_writable('test.txt') ? 'da' : 'nu';
    

Fisiere

Crearea si deschiderea unui fisier

PHP si alte cateva limbaje de programare pe partea de server au in componenta lor functia fopen si in fiecare limbaj unde exista sunt cerinte diferite referitor la sintaxa si cum ar trebui sa declaram parametri. Sa revenim la PHP. In PHP aceasta functie va avea obligatoriu doi parametri, primul fiind reprezentat de numele fisierului plus extensia acestuia iar al doilea parametru este reprezentat de modul pentru care vrem sa deschidem acest fisier. Nu trebuie sa fiti confuzi. Functia fopen este o functie cu dubla functionalitate. Functia fopen va putea creea si deschide un fisier intr-un mod de citire, scriere sau scriere la sfarsitul fisierului. In cazul in care functia nu gaseste fisierul respectiv, aceasta il va creea si il va deschide in modul declarat in al doilea parametru. In cazul in care functia gaseste fisierul respectiv atunci aceasta il va deschide intr-unul din modurile prezentate in cel de-al doilea parametru.

Modurile sunt reprezentarea motivului pentru care vom deschide un fisier si asa cum am spus anterior acestea pot fi ca vrem sa scriem date noi in acel fisier, sa suprascriem datele existente sau sa adaugam date noi la sfarsitul fisierului. Aceste moduri sunt reprezentate de o anumita litera si optional caracterul special plus. Tabelul urmator va completa aceasta informatie.

r Read from start r+
w Truncate / Write from start w+
a Append / Write from end a+
x Write from start / File can't exist x+

Semnul plus va spune serverul de PHP ca acel fisier este deschis pentru mai mult de un singur mod. In majoritatea cazurilor vor reprezenta read and write din locul unde pointerul se afla. Acum este timpul sa cream un fisier. Recomandarea mea este sa creati un fisier cu ajutorul structuri conditionare if pentru a nu risca sa afisati o eroare in browser. Mai mult decat atat numele fisierului va fi stocat intr-o variabila si apoi vom putea sa inchidem acel fisier fara sa mai scriem de doua ori calea catre acesta. PHP va inchide la finalul script-ului fisierele deschise dar ca si buna practica este bine sa le inchidem noi pentru a nu risca sa scriem in acel fisier. Inchiderea unui fisier se va realiza cu ajutorul functiei fclose si va avea un singur parametru iar acesta va fi calea catre acel fisier.

    	if($f = fopen('index.txt', 'w')){
        	echo "Fisierul a fost creat."; fclose($f);
        }
    

Scrierea intr-un fisier

Scrierea intr-un fisier se realizeaza foarte simplu si cu ajutorul functiei fwrite. La fel ca si functia fopen si aceasta functie va avea doi parametri. Primul va fi calea catre fisierul respectiv iar al doilea parametru va reprezenta informatia pe care vrem sa o scriem in acel fisier.

    	if($f = fopen('index.txt', 'w')){
        	fwrite($f, 123); fclose($f);
        }
    

In momentul cand scriem intr-un fisier gol pointerul se va afla evident la prima pozitie si de acolo va incepe sa adauge serverul se PHP informatia in fisier. Daca nu am inchis fisierul respectiv si vrem sa mai adaugam o alta informatie, pointerul se va afla la sfarsitul ultimului caracter si de acolo va incepe serverul de PHP sa adauge o alta informatie cu o alta functie fwrite.

    	if($f = fopen('index.txt', 'w')){
        	fwrite($f, 123);
            fwrite($f, 'xyz');
            fclose($f);
        }
        // fisierul va contine 123xyz
    

Aceasta modalitate de scriere intr-un fisier este un pic laborioasa si din fericire avem o functie in PHP care va face toti acesti pasi in locul nostru si nu va mai trebui sa deschidem fisierul, apoi sa scriem in fisier si ulterior sa il inchidem. Functia care va face acesti pasi este file_put_contents si va avea doi parametri. Primul va fi calea catre fisierul respectiv iar al doilea parametru va fi informatia pe care o vom adauga in fisier.

    	$txt = 'abc123';
        $file = 'index.txt';
        file_put_contents($file, $txt);
    

Stergerea unui fisier

Stergerea unui fisier este o operatie extrem de simpla si pentru a sterge un fisier va trebui mai intai sa ne asiguram ca avem drepturi pentru asa ceva in directorul unde fisierul se afla. Acel fisier trebuie sa fie un fisier obligatoriu inchis pentru a-l putea sterge. Stergerea unui fisier se va realiza cu ajutorul functiei unlink si va avea un singur parametru reprezentand calea catre fisierul respectiv.

unlink('index.txt');

Mutarea pointerului intr-un fisier deschis

In momentul cand deschidem un fisier in modul pentru scriere serverul de PHP va plasa pointerul pe primul rand si pe prima pozitie. In acest fel va suprascrie intreg continutul acelui fisier. Nimic nou pana aici. In acel moment ne apucam sa adaugam cel mai adesea text in acel fisier iar pointerul va sta intotdeauna dupa ultimul caracter adaugat. Desi stim pozitia acestuia va trebui sa aflam exact intr-o valoare numerica pozitia pointerului in fisier pentru ca mai apoi sa il putem deplasa diferite caractere inapoi. Functia ftell va face acest lucru foarte usor iar singurul parametru va reprezenta calea catre fisierul respectiv care este obligatoriu deschis. Retineti ca va trebui sa executam aceasta operatiune inainte de a inchide fisierul. Functia ftell va returna o valoare numerica reprezentand pozitia pointerului iar aceasta valoare o vom retine intr-o variabila. Urmatorul pas este sa mutam pointerul inapoi cate caractere ne dorim. Vom realiza acest lucru folosindu-ne de o alta functie iar aceasta este fseek. Aceasta functie va avea doi parametri. Primul este reprezentat de handler-ul sau variabila unde este stocat numele fisierului sau calea relativa pana la fisier iar al doilea parametru este reprezentat de variabila unde am retinut pozitia numerica a pointerului si din care vom scade un numar reprezentand cate poziti vrem ca pointerul sa se mute inapoi.

In momentul cand mutam pointerul cu ajutorul functiei fseek serverul de PHP va sterge caracterele pe care le traverseaza. Un alt aspect important este legat de modul pentru care vom deschide fisierul. Modul a si a+ nu ne va lasa sa mutam pointerul cu ajutorul functiei fseek pentru ca il va forta sa ramana la sfarsitul fisierului si este logic sa fie asa pentru ca noi am deschis fisierul in modul → w ←.

Acum este timpul sa vedem cum arata codul nostru si in acest exemplu va prezint si o functie care va muta pointerul la inceputul fisierului. Aceasta functie este rewind iar singurul parametru este calea catre fisierul cu care lucram si este deschis. Aceasta functie nu va face nimic in script-ul nostru pentru ca va fi comentata iar scopul meu este ca voi sa stiti de existenta ei.

		if($file = fopen('index.txt','w')){
			fwrite($file, 'abc123');
			$pos = ftell($file);
			fseek($file, $pos-2);
			fwrite($file, '789');
			//rewind($file);
			fwrite($file, '456');
			fclose($file);
		}
    // in fisier vom vedea acest continut → abc1789456
	

Citirea sau aflarea continutului unui fisier

Am vazut pana acum cum putem creea un fisier, scrie intr-un fisier si sa mutam pointerul unde ne dorim in fisierul deschis si la sfarsit sa il inchidem. Acum este timpul sa vedem cum putem sa aflam continutul unui fisier. Vom face asta in momentul cand fisierul este deschis in modul pentru citire iar acesta este reprezentat de litera → r ←. Urmatorul pas este de a citi continutul fisierului si vom realiza asta cu ajutorul functiei fread. Aceasta functie va avea doi parametri si primul este reprezentat de handler-ul sau variabila unde este stocat numele fisierului sau calea relativa pana la fisier iar al doilea parametru reprezinta numarul de biti pe care vrem sa il citim din fisier. Un caracter este egal cu un bit in cazul in care caracterele sunt in format latin. In cazul in care spre exemplu continutul este intr-un format ce reprezinta limba chineza, atunci un caracter nu mai este egal cu un bit pentru ca aceste caractere sunt retinute in format multibyte. Sa revenim la caracterele scrise in format latin si la functia noastra ce va este prezentata in urmatoarea linie de cod.

$content = fwrite('index.txt', 10);

Dupa cum am spus si se poate vedea, aceasta linie de cod va reprezenta stocarea continutului unui fisier intr-o variabila pana la 10 biti sau 10 caractere latine. Putem merge mai departe si sa citim intreg continutul fisierului iar in aceasta variabila vom putea avea intreg continutul fisierului cu tot ce contine el. Acest continut vrem sa il afisam in browser exact asa cum este acesta mai ales daca continutul are si caracterele invizibile reprezentand \r\n new line sau retur de car. Aceste caractere vor trebui convertite in format HTML iar eticheta HTML raspunzatoare de ruperea unui rand este dupa cum v-ati dat seama eticheta <br />.

PHP ne ofera o functie predefinita care face acest lucru in locul nostru iar aceasta este nl2br iar singurul parametru logic pe care functia il va avea este reprezentat de continutul fisierului.

$content = fwrite('index.txt', 1000); echo nl2br($content);

Vedem cum al doilea parametru al functiei fwrite este reprezentat de catre o valoare numerica. Ce facem atunci daca vrem sa citim continutul intregului fisier fara sa stim exact cati biti acesta contine, ba mai mult acest fisier poate fi dinamic in sensul ca este al unui utilizator cu cont care il actualizeaza constant. Din fericire in PHP exista o alta functie care ne va returna numarul de biti pe care acel fisier il are iar aceasta functie este filesize si evident ca va avea ca singur parametru reprezentand handler-ul unde este retinut fisierul.

Am vazut mai sus cum PHP ne oferea posibilitatea sa executam toti pasi printr-o singura functie in cazul in care vrem sa deschidem un fisier apoi sa scriem intr-un fisier si ulterior sa il inchidem. Am vazut cum putem face asta cu ajutorul functiei file_put_content. Acum este timpul sa facem acesti pasi in cazul in care vrem sa deschidem un fisier pentru citire apoi sa stocam continutul intr-o variabila si apoi sa il inchidem. Functia responsabila pentru asta este file_get_content si va avea ca singur parametru handler-ul sau calea relativa pana la fisier.

Tot in lucrul cu continutul unui fisier putem intalni o situatie in care vom avea nevoie sa citim prima linie din acel fisier. Acest lucru il vom putea realiza cu ajutorul functiei fgets si va avea ca singur parametru handler-ul sau calea relativa pana la fisier. Acest continut il vom stoca intr-o variabila si apoi vom face ce vrem cu el.

O functie pentru alte caz este cea in care vom dori sa parcurgem intreg fisierul linie cu linie si vrem sa stim daca am ajuns la finalul fisierului. Aceasta functie este feof (file end of file) si va avea ca singur parametru handler-ul sau calea relativa pana la fisier.

Detalii despre fisiere

Am vazut anterior cum putem afla marimea exacta a unui fisier ce are un continut ce poate varia. Acum este timpul sa vedem si alte detalii legate de fisierul sau fisierele cu care lucram. PHP ne ofera cateva functii cu care putem sa aflam data exacta in format UNIX cand continutul fisierului a fost modificat sau i sau adus modificari asupra drepturilor de acces si in cele din urma sa aflam cand fisierul a fost accesat ultima data pentru citit sau scris. Aceste functii sunt urmatoarele si fiecare dintre ele va avea ca singur parametru handler-ul sau calea relativa pana la fisier.

  • filemtime(); // ultima modificare de continut
  • filectime(); // ultima modificare de continut si metadate
  • fileatime(); // ultima accesare pentru citit sau modificat continutul

Din moment ce putem vedea si accesa aceste informatii putem sa le si modificam actualizand informatiile la data curenta in format UNIX. Functia care va actualiza toate aceste metadate este touch si va avea ca singur parametru handler-ul sau calea relativa pana la fisier.

Un alt tip de metadate legate de un fisier sunt cele in care aflam calea in sistem pana la nivel de director, numele si extensia acestuia impreuna dar si separat. Functia care va face acest lucru se numeste pathinfo si va avea ca singur parametru handler-ul sau calea relativa pana la fisier sau constanta __FILE__ despre care stim ce valoare are. Functia pathinfo va returna un array asociativ. Testati aceasta linie de cod intr-unul din fisierele voastre.

var_dump(pathinfo(__FILE__));

Directoare

Crearea unui director

Am vazut la inceputul tutorialului rolul pe care il au functiile is_dir si dirname. Acum este timpul sa facem cunostinta cu o alta functie. Aceasta functie are un comportament asemanator cu pointerul din interiorul unui fisier si ne va returna directorul cu care lucram in prezent.

  • getcwd(); // get current working directory

Acum ca stim cum sa aflam cu ce director putem sa lucram este timpul sa cunoastem functia cu care vom putea creea un director. Numele functiei este mkdir si este o functie pe care multi programatori care lucreaza in command prompt o cunosc. Aceasta functie va avea in PHP unul, doi sau trei parametri. Primul va fi numele directorului si aici putem sa declaram si recursiv, al doilea parametru este reprezentat de un drept de acces reprezentat printr-o valoare in format octal iar parametrul trei va reprezenta o valoare booleana care ii va spune serverului de PHP daca aceasta functie va aplica recursiv sau nu.

Inainte de toate vreau sa revin asupra parametrului doi al functiei mkdir. Valoarea in format octal ce face referire la un drept de acces este discutabila si asta pentru ca serverul de PHP nu poate stabili prin aceasta functie ce drept de acces poate avea o persoana asupra acestui director. Este normal sa fie asa pentru ca nu suntem administratorul sistemului de operare si din acest motiv functia va avea cel mai adesea un singur parametru, primul pe care vi l-am prezentat.

Totusi avem in PHP o alta functie care poate stabili acest drept de acces iar aceasta este → umask.

    	mkdir('nume-director/sub-director', 0777, true);
        // 0777 este valoarea default
    

Navigarea spre un alt director

Navigarea spre un alt director se face cu ajutorul unei alte functii iar numele acesteia este foarte intuitiv. Functia chdir (change directory) va avea un singur parametru iar acesta reprezinta calea pana la directorul cu care vrem sa lucram. Aceasta functie va schimba si pointerul pentru directoare si va amintiti ca functia getcwd returneaza directorul cu care lucram.

chdir('nume-director/sub-director');

Stergerea unui director

Stergerea unui director implica trei conditii principale. Acel director trebuie sa fie inchis, fara nici-un fisier in el iar pointerul pentru directoare trebuie sa fie in afara directorului ce urmeaza a fi sters. In caz contrar functia predefinita rmdir (remove directory) nu va putea sterge directorul si serverul de PHP va returna o eroare. Functia rmdir va avea un singur parametru iar acesta va reprezenta calea relativa pana la acel director.

Spuneam ca una dintre conditii este ca directorul sa fie gol si sa nu contina nici-un fisier. Aceasta regula este inca de la incepului sistemului UNIX si s-a mentinut pana in prezent iar motivul este ca nu vrem sa riscam sa pierdem fisiere ce pot contine informatii utile. PHP ne ofera cateva functii utile cu care vom putea deschide, citi si inchide un director iar numele lor reflecta rolul pe care il au.

  • opendir();
  • readdir();
  • closedir();

Am vazut mai sus cum putem sterge un fisier. Acum depinde doar de voi sa stergeti un director care va putea contine unul sau mai multe fisiere. Personal prefer sa nu folosesc niciuna dintre aceste functii si asta pentru ca exista o functie care ne va returna un array cu toate numele plus extensia fisierelor din director. Aceasta functie este scandir si evident ca va primi ca singur parametru calea catre directorul ce urmeaza a fi sters dupa ce toate fisierele pe care le contine au fost sterse.

Acum ganditi-va logic. Din moment ce functia scandir va returna un array cu numele si extensia fisierelor atunci acest array il vom stoca intr-o variabila pentru ca mai apoi sa il parcurgem printr-o structura repetitiva for si la fiecare iterare vom sterge cate un fisier. Structura repetitiva for va avea nevoie de o valoare numerica reprezentand comparatia dintre valoarea de inceput si cea de test. Aceasta valoare test este reprezentata de lungimea array-ului. Vom afla lungimea array-ului folosindu-ne de functia count care va primi ca singura valoare array-ul. Dupa ce aceasta structura for si-a terminat treaba atunci putem sterge directorul.