• Përshëndetje Vizitor!

    Nëse ju shfaqet ky mesazh do të thotë se ju nuk jeni regjistruar akoma. Edhe pse nuk jeni regjistruar ju arrini të shihni pjesën me të madhe të seksioneve dhe diskutimeve të forumit, por akoma nuk gëzoni të drejten për të marrë pjesë në to dhe në avantazhet e të qënurit anëtar i këtij komuniteti. Ju lutem : REGJISTROHUNI që të dërgoni postime dhe mesazhe në Forum-Al.

    Regjistrohu !

Manipulimi i Direktorive me PHP

Forum-Al

Aty ku shqiptarët mblidhen
Anëtar
Jan 5, 2010
Postime
560
Pikët
28
Vendndodhja
Forum
Në guidën e mëparshme ju tregova si të manipuloni skedarët duke përdorur fuqinë (dhe thjeshtësinë në të njëjtën kohë) e PHP. Me njohuritë e marra atje, tashmë dini si të lexoni skedarë, shkruani, fshini, etj. Në këtë guidë do ju mësoj si të manipuloni direktoritë për ti kompletuar njohuritë tuaja në punimin me Skedarët e Sistemit (aka FileSystem). Guida e mëparshme nuk është e detyrueshme, por ju këshilloj ti hidhni një sy.

Navigimi nëpër Direktori

Ashtu si jeni mësuar të navigoni direktoritë në nje sistem operativ, edhe në PHP mund të bëni të njëjtën gjë me 2 funksione: chdir() dhe getcwd(). Veprime të tjera si shfaqja e skedarëve kërkojnë më tepër pune, prandaj do i trajtoj më vonë në këtë guidë. Tani të fokusohemi një herë me këto 2 funksione të thjeshtë.

getcwd()GET Current Working Directory – Përmes këtij funksioni mësojmë se në cilën direktori ndodhemi aktualisht, pra direktoria ku skedari aktual PHP egzekutohet.

chdir() - Change Directory – Ndryshon virtualisht direktorinë e egzekutimit.

Përmes këtyre dy funksioneve mund të navigoni lehtësisht sistemin e të shfaqni skedarët që ndodhen nën direktori, të përfshini skedarë, etj. Ky funksionalitet nuk është gjithmonë i domosdoshëm, por është aty nëse ju lind nevoja apo thjeshtë doni të eksperimentoni.

Krijimi i Direktorive

Ashtu si gjithçka tjetër deri tani, edhe krijimi i direktorive arrihet shumë lehtë; vetëm me një funksion i cili është mkdir().

Kodi i mësipërm ka vetëm një problem. Po sikur direktoritë mëmë “drejt” dhe “nje” mos të egzistojnë, a do krijohet direktoria “direktorie“? Ashtu si e kam shkruar unë kodin jo, por fatmirësisht PHP 5 ofron një parametër rekursiv i cili i krijon automatikisht direktoritë mëmë jo egzistente. Parametri tjetër është niveli i akesit.

Leximi i Përmbajtjes së Direktorive

Ajo që na intereson nga një direktori nuk është fakti që egziston, por çfarë përmban brenda saj. Me PHP mund të shfletojmë shumë lehtë skedarët dhe nën-direktoritë që një direktori përmban. Shikoni shembullin më poshtë.

Shembulli më sipër është rasti më i thjeshtë për të lexuar një direktori, por mund të bëhet edhe më thjeshtë. PHP 5 ofron një funksion të ri për të paraqitur skedarët e një direktorie të quajtur scandir(). Teorikisht nuk kanë asnjë ndryshim, por në praktikë po. Me funksionin readdir() lexojmë dhe printojmë direkt emrin e skedarit e nëse do donim ta kalonim rezultatin në një vektor, do na duhej të bënim disa ndryshime të vogla. Ndërsa funksioni scandir() i kalon rezultatet direkt në një vektor, të cilin mund ta shfletojmë kur na nevojitet. Pra përdorni funksionin që i përshtatet skenarit tuaj.

Shembujt e dhënë më sipër janë shumë mirë për aq kohë sa direktoria ka vetëm skedarë brenda. Problemi është se me to nuk marrim përmbajtjen e nën-direktorive që ndodhen brenda, për të krijuar një pemë të plotë të skedarëve. E lehtë për tu zgjidhur! Duke përdorur shembullin e parë (atë me readdir) do të ndërtojmë një funksion i cili shfleton skedarët dhe thërret veten e tij në mënyrë rekursive, për të shfaqur gjithçka që ndodhet brenda direktorive të niveleve më të thella. Gjithashtu kam shtuar edhe kod ekstra për disa kontrolle që i kam shpjeguar tek komentet. Kodi është paksa më kompleks se ato që kemi parë deri tani, sidomos nëse nuk jeni mësuar me rekursivitet, kështu që merrni kohën tuaj.
 
Top