Lista de foldere, adăugați foldere, sortare
Astăzi vom discuta despre crearea de foldere și de a crea o listă de dosare. La început, vă permite să continuați cu ordinea analizei, scuzați-mi tautologia.
Vom vorbi la început despre caracteristicile care vor decide primele două probleme. Și abia apoi trece la cea mai interesantă parte - aplicarea motorului nostru de pe fișiere.
1. Cum de a crea un dosar
2. Ia-o listă de dosare
3. Elementul motor, crearea de foldere + editați lista de dosare, dosare sortate în ordine alfabetică, condițiile pentru a crea foldere.
Cum pot crea un dosar?
Pentru a crea un dosar va folosi «mkdir». În mod implicit «mkdir» creează drepturi 0777, în cazul în care aveți nevoie pentru a pune drepturile lor, este necesar să se utilizeze o astfel de structură:
Ce ai nevoie Zant la locul de muncă cu această caracteristică? Ceea ce ea se întoarce cu succesul adevărate și false în caz contrar, funcția are 4 parametri, care nu vom intra în aici - una dintre optiunile pe care le-am spus că este «modul» - dreapta (0700).
Pentru a găsi calea absolută în folderul, utilizați structura:
Ce înseamnă - dosar kornevtsyu. Corespunzător „put_do_papki“ - este calea din directorul rădăcină.
Totală pe care ar trebui să aibă
Pune $ = $ acasă. "Put_do_papki / nazvanie_sozdavaemoy_papki"; // calea către directorul
Pentru a nu crea mai multe dosare cu același nume, verificați dacă există un dosar cu același nume
echo „există deja acest dosar“;
apoi a crea o structură de dosar
Ia-o listă de dosare?
Ne-am atins deja pe subiecte care au primit lista de dosare, astfel încât trebuie să verificați aici. E problema primirii de fișiere, dar este, de asemenea, aplicabilă pentru a obține lista de dosare. Pentru a selecta o funcție dosar, este necesar să se pună condiția și filtrele pentru a plasa fișiere și foldere tocmai a plecat.
Creați foldere + editați lista de dosare
Desigur, unele script-uri sunt un pic eronate, și prime, ci pentru că eu fac totul pentru prima dată a face acest lucru - o reducere de 99%.
Să ne întoarcem la oile noastre, sau mai degrabă pentru a crea și edita foldere.
Vom combina două Scrin:
Unde putem vedea că alege un folder în directorul rădăcină, în cazul în care avem nevoie pentru a face un fișier în ea, atunci nu atinge nimic în coloana a doua, nu ar trebui să rămână goale, dacă vrem să facem un fișier într-un sub-dosar, apoi selectați al doilea dosar. Aici vom face cu lista de dosare, a crea un nou dosar, dosarul în dosarul și filtrul după nume!
Condus! Drumul va fi lung!
Să începem cu algoritmul!
Putem lua funcția, care a fost discutată mai devreme, adică punctul №2. Dar faptul este că nu va trebui să filtreze o mulțime, pentru că în listă nu vor numai fișiere, ci și toate numele de dosare care există la toate - nu e pentru noi!
Vom crea o listă de foldere pe fișier txt și pentru a crea dosarul va folosi «mkdir» funcție
Dosare vor fi scrise într-un fișier pe baza:
1. Pentru un dosar în rădăcină
2. Și un subfolder, este nevoie de caractere dublu-colon pentru sortarea, atunci va fi clar.
Oricum, să scrie complet algoritm.
Verificați pe lungimea numelui folderului (contoriza numărul de caractere dintr-un cuvânt) și să facă această condiție nu este mai mică de 5 și nu mai mult de 15.
Aici Vă atrag atenția asupra faptului că funcția str_split nu funcționează cu alfabetul chirilic, astfel încât new_folder $ variabila (numele noului director), deja depășit în limba latină.
Ei bine, există într-adevăr doar cred că ați înțeles deja, depășit dosarul nostru în matrice, și se numără numărul de celule - este prima linie, bine și apoi face condițiile corespunzătoare.
în cazul în care ($ new_folder_count 15)
dosar echo“nu poate fi mai mult de 15 de caractere„;
În continuare, vom face o dublă verificare, verificați mai întâi dacă există o potrivire și o serie de dosare (foldere listă), și apoi un nou dosar pentru un meci în aceeași matrice.
De ce avem nevoie de o dublă verificare. Două nume dosar nu poate fi! Și o mică parte din dosar nu poate fi parte dintr-un dosar mare sau script-ul nu va funcționa.
Obținem datele într-o variabilă
Toate scrisorile fac cu litere mici
Urmatoarea pe lista noastra de a face un șir de caractere înlocui orice coloni duble (: :) și amânarea (\ n), o virgulă, iar apoi vom împărți pe punctul de pe matrice această linie (exploda).
Și vom continua să atingă un meci (strops) un dosar nou pentru matrice. Dacă este găsită o potrivire, apoi a crea o variabilă $ adevărată. Și afișează un mesaj dacă există această variabilă.
$ Zamena = preg_replace ( "/ :: /", '', $ file_line_strtolower);
$ Zamena = preg_replace ( "/ \ n /", '', $ zamena);
$ New_expl = exploda ( '', $ zamena);
pentru ($ i = 0; $ i în cazul în care (@strpos ($ new_folder, $ new_expl [$ i])! == false) echo „există Acest dosar În continuare, vom verifica în direcția opusă în cazul în care (strpos ($ file_line_strtolower, $ new_folder) == false) Nu a verifica că C în prezența unui dosar pentru a verifica Nova noastră, acum avem nevoie pentru a verifica, și dacă există un astfel de dosar, în realitate, nu este de ajuns. Poate că, la fel ca în cazul meu, aveți de gând să utilizați acest script pentru a utiliza este deja pe site-ul, în cazul în care există deja o mulțime de dosare. Ia calea absolută la dosar și verificați dacă acesta .. (file_exists) Pune $ = $ acasă $ new_folder .; // echo $ a pus; Pune $ = $ acasă $ Poisk '/' $ new_folder ...; // echo $ a pus; echo „există deja acest dosar“; Apoi, creați un dosar cu drepturile 0777 în cazul în care (@mkdir ($ pune, 0777, true)) echo „Dosarul este facut“; Următorul va fi chiar mai mult cod și eu nu am de gând să mă opresc asupra totul, și kilometraj numai rapid. (Ei bine, în măsura în care este posibil, desigur) Obținem date dintr-un fișier într-o matrice Înregistrarea noului director. În continuare vom crea înregistrarea propriu-zisă a noului director în fișierul. Vom avea trei opțiuni pentru a crea o înregistrare a noului dosar ... 1.Prezenta este crearea de dosare în dosarul rădăcină de forma: Dacă $ Poisk gol, ceea ce înseamnă în alegerea foldere pe captura de ecran de top, am ales golul din prima coloană. Adăugați la matrice de bază ($ fișier) de intrare ($ new_folder "\ N.".);) Apoi, a sorta toate în gama noastră (sortare) și a pus steagurile pentru a nu acorde atenție cazului. transforma în continuare matrice noastră într-un șir de caractere (implozie) și de fapt zapisshem în fișierul nostru (file_put_contents) în cazul în care (gol ($ Poisk)) // Când efectuați o înregistrare a noului director primul nivel array_push ($ file, $ new_folder "\ n.".); // sortare INDIFERENT REGISTRULUI. sortare ($ file, SORT_NATURAL | SORT_FLAG_CASE); // print_r (fișier $); // echo ' $ End = implozie ( "", $ file); // echo $ sfârșit; 2.Pentru dosarul-al doilea nivel. Și vor exista doi algoritmi, care diferă ușor .. dosar 2.a.Kogda în dosarul rădăcină este gol și vizualizarea dosar vor fi: Inițial, două variante de a verifica dacă un director este selectat în prima coloană (sau, mai degrabă, am făcut deja un pic mai mare (în cazul în care (gol ($ Poisk))) și a pus înainte de a continua „altceva“). Vom crea un dosar de-al doilea nivel și scrie între două coloane. $ Poisk - este de dorit dosar din listă, extindeți matrice (lista) pe linie, iar fiecare linie va căuta directorul nostru, fac din acest nou record un dosar nou. pentru ($ i = 0; $ i în cazul în care () @strpos (linia $, $ Poisk! == false) Noi împărțim șirul găsit într-o matrice de coloni duble separator (: :) $ NEW_LINEBEGIN_BOLDPasul = exploda ( '::', linia $); // IF dosar NO TE la dosar $ NEW_LINEBEGIN_BOLDPasul [1] -Sa Și apoi vom face check ramificare găsit în linia de demarcație dintre cele două colonul, dacă sunt goale, atunci: Apoi, asambla o linie nouă în $ NEW_LINEBEGIN_BOLDPasul nostru [0] este numele unui dosar existent, adăugați-l la un nou dosar, și apoi înlocuiți (preg_replace) linia vechi la noi și pot fi scrise în fișierul. Din moment ce nu încalcă ordinea dosare, iar apoi sortați nu se va! $ End = preg_replace ( "/ $ linie /", $ line_new, $ file_line); $ Array = exploda ( "\ n", $ final); dosar 2.b.Kornevaya există și un dosar (un dosar deja) se află în interiorul. (Folder nivel record de o virgulă (aceasta este al doilea separator nostru.)) Opțiunea 2.a. diferit de 2.b. Numai că, dacă există deja directorul (folderul de nivel al doilea), pentru a adăuga noastră nouă variabilă $ new_folder dosar, etc Am împărțit într-o matrice (The exploda), denumit în continuare pentru a sorta (sortare). Ei bine, atunci la fel ca și în versiunea 2.a ... .. $ NEW_LINEBEGIN_BOLDPasul [1] = $ NEW_LINEBEGIN_BOLDPasul [1] '' $ new_folder; // DACĂ directoarele în TE $ NEW_LINEBEGIN_BOLDPasul [1] - nu este gol $ Array = exploda ( '', $ NEW_LINEBEGIN_BOLDPasul [1]); sortare ($ matrice, SORT_NATURAL | SORT_FLAG_CASE); // print_r ($ array); $ Text = implozie ( '', $ array); // $ echo de text; $ End = preg_replace ( "/ $ linie /", $ line_new, $ file_line);
sau utilizați o parte din dosar pentru a crea un nou dosar „.;
„;articole similare