Fájlok és könyvtárak php - szeretne egy weboldal
Fájlok és könyvtárak php
Jó minden napszakban, helló. Ma szeretnék mondani néhány PHP funkciók dolgozni könyvtárak és a fájlrendszer. És mivel ez a legjobb módja a példákban ez nem hozta meg a szekrényben fordulok közvetlenül érintik őket.
Így a kihívás:
Kap egy listát a fájlokat az aktuális könyvtárban és szűrő elemek bizonyos fájl kiterjesztések. meghatározó egyidejűleg a méret a kiválasztott fájlok és természetesen jelenik meg a böngésző eredményeinket.
Nos, ez nem úgy tűnik, az élet méz, nézzük bonyolítja a feladat, és kap egy fájlok listája A könyvtárban rekurzívan.
Sőt, mi lenne, ha bennünk, kivéve a választott fájl könyvtár tartalmaz más könyvtárak, sőt azokon belül, újra és újra.
Itt van, ha jön a mentő és a rekurzió. azaz kezelő funkciója, hogy önmagát. Mint mondják hagyja, hogy a gép maga működik, hiszen a vas.
Itt van, hogyan csináltam:
Elemezzük lépésről lépésre a script kódot.
Eleinte leírja read2Dir () függvényt. ami valójában mindent megtesz a munkát.
Tart a következő paramétereket:
$ Konyvtar, amely azt fogja beolvasni off $ paraméter, amely meghatározza, hogy milyen típusú otsupa amikor kimenetre az adatokat a böngésző
Ezután a feltételes operátor, ha (ő csak írt egy kicsit másképp) ellenőrzi, hogy a perjel tartalmaz (/), a végén a könyvtár.
És ha van ilyen, akkor hagyni mindent, ahogy van, és egyébként add meg a végén.
És ha ez nem jön ki a függvény visszatér HAMIS. Nos, ha ez mind ugyanabban a könyvtárban, akkor a opendir () függvény kap egy könyvtárat későbbi felhasználásra, ami viszont segít a readdir () függvény, így egy elem ebben a leíró a könyvtárba.
A kapnak címtárbejegyzéseket fogunk whille ciklus, amíg a könyvtár bejegyzést létezik - azaz nem azonosan HAMIS. Vagy nagyon egyszerűen fogalmazva a ciklusban lesz tárgyak, mielőtt véget ér.
Felhívjuk figyelmét, hogy meg kell, hogy ellenőrizze az identitás.
Ennek eredménye, hogy kéne valami ilyesmit vonal - (dokumentumok / fajl.txt). Természetesen, ha a fogadott tételt egy fájl, nos, különben a kapott elem egy könyvtár, és így meg kell, hogy újra ellássa szkennelés.
Ehhez először basename () függvényt. vagy „..”, amely visszaadja a fájl nevét a megadott elérési út nem ellenőrzi, hogy a kapott elem. »«
Ha így kihagyja az iterációs ciklus whille a continue utasítás.
Következő egy függvényt definiálunk fájltípus () a fájltípust.
Ez a függvény egy lehetséges értékek: FIFO, char, dir, blokk, link, file vagy ismeretlen.
De a mi esetünkben mi érdekli tollko dir. és ha igen, akkor ez a futás és a rekurzió.
Ez megint hívjuk a read2Dir () függvényt. Csak ebben az időben, add az aktuális elem és a dokkok (Concatenate) a változó $ offset extra párnázással.
Nos, ha olvasásával kapott a könyvtár bejegyzést, majd ellenőrizze a fájl kiterjesztését. Hogy ez a legegyszerűbb módja annak, hogy ellenőrizze, megfelel-e a szükséges bővítés az utolsó három karakter.
Hozzák a substr () függvénnyel. amely visszaadja a húr. És azt hangsúlyozta, hogy Érdekelne, csak az utolsó 3 karakter.
Nos, miután meglehetősen egyszerű.
Ha a kiterjesztés megegyezik a kijelölt kapcsolattartó, akkor használja a fájlméretet () függvény. amely visszaállítja a fájl méretét byte-ban, vagy FALSE hiba esetén, megkapjuk a fájl mérete, és az echo megjeleníti a böngészőben.
Működött? Akkor ne felejtsük el, hogy kiadja a katalógusban leíró függvény closedir (). amely lezárja a patak társított katalógusban.
Itt van kapcsolva a funkció. Ennek oka lehet, például, kifejezetten kérni könyvtárban. Azért választottam a könyvtárat egy szinttel feljebb a könyvtár, amelyben a szkript fut.
Alternatív módon keresztül getcwd () függvény. Kotra visszaadja az aktuális könyvtárat.
Kísérlet az egészségre!
Készüljünk kérdéseire néhány „guru” a program, szeretném megjegyezni, hogy én szándékosan nem optimalizált kód ahogy maga a feladat nem ír az „ideális” kódot, és azt mutatják, amennyire csak lehetséges, talán valami megkettőzte önmagát funkciókat használnak dolgozni a fájlt motorok és könyvtárakat.
Ezen ma. Örömmel válaszolunk kérdéseire, ha van nekik. Viszontlátásra.