Létrehozása php mappa

Mappa listában, add mappák, válogatás

Ma fogunk beszélni létrehozását mappák és hozzon létre egy listát a mappák. Az elején lehetővé teszi, folytassa a sorrendben az elemzés, bocsánat a tautológia.

Megbeszéljük az elején a funkciók, amely eldönti az első két probléma. És csak akkor folytassa a legérdekesebb része - a kérelem a mi motor fájlokat.

1. Hogyan hozzunk létre egy mappát

2. Kap mappalistáról

3. A motor elem, mappa létrehozása + módosítsa a mappák listáját, mappák ábécé-sorrendben, a feltételeket hozzon létre mappákat.

Hogyan hozhatok létre egy mappát?

Ahhoz, hogy hozzon létre egy mappát fogja használni a «mkdir». Alapértelmezésben «mkdir» keletkeztet jogokat 0777, ha meg kell tenni jogaik, meg kell használni egy ilyen szerkezet:

Amire szüksége Zant munkahelyi ezt a funkciót? Mit visszatér a siker az igaz és hamis, különben a függvény 4 paraméter, amely azt fogja itt nem megyünk bele - az egyik lehetőség mondtuk ez «üzemmód» - jobb (0700).

Ahhoz, hogy megtalálja az abszolút elérési utat a mappát, a szerkezet:

Mit jelent - kornevtsyu mappát. Megfelelően „put_do_papki” - az az út, a gyökér mappában.

Összesen kellett volna

$ Tedd = $ haza. "Put_do_papki / nazvanie_sozdavaemoy_papki"; // A mappa elérési

Annak érdekében, hogy ne hozzon létre több mappát ugyanazzal a névvel, ellenőrizze, hogy van egy mappa az azonos nevű

echo „mappa már létezik”;

majd hozzon létre egy mappastruktúrát

Kap egy listát a mappák?

Már érintettük téma fogadó mappák listáját, így meg kell, hogy nézd meg itt. Ott van a kérdés kézhezvételét fájlokat, de ez is alkalmazható, így a mappák listáját. A mappa kiválasztásához funkciót, meg kell tenni a feltételt, és szűrőket drop fájlokat és mappákat csak balra.

Mappák létrehozása + módosítsa a mappák listáját

Persze, néhány szkript egy kicsit hibás, és a nyers, hanem azért, mert mindezt az első alkalommal ezzel - a 99% -os kedvezményt.

Térjünk vissza a juhok, vagy inkább létrehozásához és szerkesztéséhez mappákat.

Mi össze két Scrin:

Amennyiben kiderül, hogy válasszon ki egy mappát a gyökér mappában, ha kell, hogy egy fájl sem, a második oszlopban ne nyúljon semmihez, nem kell üres marad, ha azt akarjuk, hogy egy fájlt egy al-mappát, majd válassza ki a második mappát. Itt fogunk foglalkozni a mappák listáját, hozzon létre egy új mappát, a mappában, a mappa és a szűrő nevét!

Létrehozása php mappa

Hajtott! Az út hosszú lesz!

Kezdjük az algoritmust!

Tudunk a funkciót, amelyet korábban tárgyalt, vagyis a lényeg №2. De a tény az, hogy ott kell kiszűrni a sok, mert a listában nem csak fájlokat, hanem az összes nevet mappákat, amelyek egyáltalán - nem nekünk!

Létrehozunk egy mappák listáját a txt fájlt, és a mappa létrehozásához fog használni «mkdir» funkció

Mappák lesz egy fájlba alapján:

1. egy mappát a gyökér

2. És egy almappa, dupla kettőspont karaktert írjon válogatás, akkor lesz világos.

Mindegy, menjünk teljesen levelet algoritmus.

Ellenőrizze a mappa nevére hossza (számolja meg a karakterek egy szó), és a feltétel nem kevesebb, mint 5 és legfeljebb 15.

Itt felhívni a figyelmet arra a tényre, hogy str_split funkció nem működik a cirill betűs, így a változó $ new_folder (a neve az új mappa) már meghaladta a latin.

Nos, tényleg csak úgy gondolja, hogy már érti, felülmúlta mappát a tömbben, és megszámoltuk a sejtek - az első sorban, jól, majd végezze el a megfelelő körülmények között.

if ($ new_folder_count 15)

echo „mappát nem lehet több, mint 15 karakter„;

Ezután teszünk a kettős ellenőrzés, először ellenőrizze, van-e megfelelő és egy sor mappák (mappák listáját), majd egy új mappát a mérkőzés azonos tömbben.

Miért van szükség a kettős ellenőrzés. Két mappát nevek nem lehet! És egy kis része a mappát nem lehet része egy nagy mappa vagy a szkript nem fog működni.

Megkapjuk az adatokat egy változó

Minden betű kisbetű do

Következő listánkon, hogy nem egy húr helyettesít dupla kettőspont (: :) elhalasztása (\ n), egy vessző, és akkor majd osztani ezt a sort (felrobban) a pont a tömb.

És mi továbbra is érintse a mérkőzés (szíjak segítségével) egy új mappát a tömbben. Ha egyezést talál, akkor létrehozunk egy változót $ igaz. És megjelenít egy üzenetet, ha ez a változó létezik.

$ Zamena = preg_replace ( "/ :: /", '', $ file_line_strtolower);

$ Zamena = preg_replace ( "/ \ n /", '', $ zamena);

$ New_expl = felrobban ( '', $ zamena);

A ($ i = 0; $ i

if (@strpos ($ new_folder, $ new_expl [$ i])! == false)

echo „Ez a mappa létezik
vagy ha egy részének felhasználásával a mappát, hozzon létre egy új mappát. „;

Következő lépésként ellenőrizze az ellenkező irányba

if (strpos ($ file_line_strtolower, $ new_folder) == false)

Ne ellenőrizze, hogy a C jelenlétében egy irattartó, hogy ellenőrizze a Nova, most kell ellenőrizni, és ha van ilyen mappa, a valóságban, nem elég. Talán, mint az én esetemben, akkor fogja használni ezt a szkriptet használni már az oldalon, ahol már van egy csomó mappa.

Vegyük az abszolút elérési útvonalát a mappát, és ellenőrizze, hogy ez .. (file_exists)

$ Tedd = $ HOME $ new_folder .; // echo $ fel;

$ Tedd = $ HOME $ poisk '/' $ new_folder ...; // echo $ fel;

echo „mappa már létezik”;

Ezután hozzon létre egy mappát a jogait 0777

if (@mkdir ($ put, 0777, true))

echo „A mappa létrehozása”;

Következő lesz még több kódot, és nem fogok lakni mindent, és futott csak gyorsan. (Nos, amennyire csak lehetséges, természetesen)

Kapunk fájlból adatokat egy tömbben

Felvétel az új mappát.

Ezután létrehozzuk az aktuális rekord az új mappát a fájl.

Mi lesz létrehozásához három lehetőség a rekord az új mappa ...

1. Ez a teremtés mappák a gyökér mappában a következő formában:

Ha a $ poisk üres, vagyis a választás mappák felső képernyőképet, úgy döntöttünk, a void az első oszlopban. Add az alapvető array ($ file) bejegyzés ($ new_folder. "\ N");)

Ezután rendezni az összes a tömbben (sort), és tegye a zászlókat, hogy ne figyeljen a helyzet. További átalakítja a tömb egy string (implode), és ténylegesen zapisshem mi fájlt (file_put_contents)

if (empty ($ poisk)) // Ha egy rekordot az új mappa ELSŐ SZINT

array_push ($ file, $ new_folder. "\ n".); // válogató FÜGGETLENÜL a nyilvántartásból.

sort ($ file, SORT_NATURAL | SORT_FLAG_CASE); // print_r ($ file); // echo '

$ End = implode ( "", $ file); // echo $ end;

2.A második szintű mappa.

És ott lesz két algoritmus, ami kissé eltérnek ..

2.a.Kogda mappát a gyökér mappa üres, és a mappa nézet lesz:

Kezdetben két változat ellenőrzését, hogy egy mappa van kijelölve az első oszlopban (vagy inkább már megtett egy kicsit magasabb (if (empty ($ poisk))), és tegye a folytatás előtt „más”).

Létrehozunk egy második szintű mappa és írd meg két kettőspont.

$ Poisk - a kívánt mappát a listából, bontsa ki a tömb (lista) a sorban, és minden sor fog keresni a könyvtár, hogy ezt az új rekordot egy új mappát.

A ($ i = 0; $ i

if (@strpos ($ sor, $ poisk)! == false)

Osztjuk a megtalált karaktersorozat egy sor elválasztó kettős kettőspont (: :)

$ NEW_LINE = felrobban ( '::', $ vonal); // Ha nem TE mappát mappába $ NEW_LINE [1] -Let

És akkor nem ellenőrzi elágazások találhatók a vonal a két kettőspont, ha az üres, akkor:

Ezután össze egy új sort a mi $ NEW_LINEKeressen [0] a neve egy meglévő mappát, add, hogy egy új mappát, majd cserélje ki (preg_replace) a régi vonalat az új, és lehet írni a fájlt. Mivel nem sérti az, hogy a mappák, majd egyfajta nem fog!

$ End = preg_replace ( "/ $ line /", $ line_new, $ file_line);

$ Array = felrobban ( "\ n", $ vége);

2.b.Kornevaya mappa létezik, és egy mappát (a mappa már) belül van. (Mappa tier rekord egy vessző (ez a második szeparátor.))

Az opció 2.a. eltér 2.b Csak annyit, hogy ha a mappa (második szintű mappa) már létezik, hogy adjunk az új változó $ new_folder mappa, stb osztott meg egy tömb (The felrobban), a továbbiakban, hogy rendezze a (sort). Nos, akkor ugyanaz, mint a 2.a változata ...

.. $ NEW_LINE [1] = $ NEW_LINEKeressen [1] '' $ new_folder; // HA mappákat a TE $ NEW_LINEKeressen [1] - nem üres

$ Array = felrobban ( '', $ NEW_LINE [1]);

sort ($ array, SORT_NATURAL | SORT_FLAG_CASE); // print_r ($ array);

$ Text = implode ( '', $ array); // echo $ text;

$ End = preg_replace ( "/ $ line /", $ line_new, $ file_line);

Kapcsolódó cikkek