Utilizarea cataloagelor (Directoare)

Cele mai importante functii pentru utilizarea cataloagelor va permit sa obtineti catalogul de lucru si sa lucrati cu acesta, sa manipulati cai de acces, sa cititi continutul unui director, sa vizualizati si sa modificati privilegiile unui director, precum si sa creati si sa stergeti cataloage.
In acest context, numele "catalog" si "director" reprezinta acelasi lucru.

1. Obtinerea si modificarea directorului de lucru

Functia getcwd() returneaza numele catalogului curent de lucru. Functia nu necesita argumente si poate fi utilizata astfel:
                $cdir = getcwd();
Pentru a schimba catalogul curent de lucru, puteti folosi functia chdir(), care are urmatoarea forma:
                chdir(nume_director)
- Unde "nume_director" este calea sau numele catalogului de lucru dorit.
Functia returneaza TRUE daca operatia reuseste; în caz contrar, returneaza FALSE.
De exemplu, daca in directorul curent se afla alt director "temp", pentru a face din "temp" catalogul curent de lucru, folositi functia chdir() dupa cum urmeaza:

<?php
$ndir = chdir("temp/");
?>

2. Manipularea cailor de acces

PHP include numeroase functii utile pentru manipularea cailor de acces.
Functia dirname() preia calea de acces la un fisier si returneaza toata calea, mai putin componenta finala a caii specificate, în cazul în care componenta finala este un fisier, functia va ajuta sa izolati numele fisierului de restul caii.
De exemplu, daca se da calea "plomar/curs-php/lectii/lectia1.php", functia va returna "plomar/curs-php/lectii".
Functia are urmatoarea forma:
                dirname(cale_fisier)
Functia basename() executa operatia complementara, returnând numai componenta finala a caii specificate.
De exemplu, daca este data calea "plomar/curs-php/lectii/lectia1.php", functia "basename()" va returna "lectia1.php".
Functia are urmatoarea forma:
                basename(cale_fisier)
Daca doriti sa executati mai multe operatii cu o cale, functia pathinfo() va poate fi de folos. Aceasta functie returneaza un tablou care include patru elemente (al patrule incepand de la versiunea PHP 5.2.0):

Iata un exemplu care prezinta modul de utilizare a functiei pathlnfo() :
<?php
$path_parts = pathinfo('plomar/curs-php/lectii/lectia1.php');
foreach ($path_parts as $num => $val) {
      echo "<br /> $num => $val";
}
?>
Datele de iesire ale scriptului de mai sunt urmatoarele :
dirname => plomar/curs-php/lectii
basename => lectia1.php
extension => php
filename => lectia1
Un alt mod in care puteti utiliza si afla valorile returnate de functi pathinfo() este urmatorul:
<?php
$path_parts = pathinfo('plomar/curs-php/lectii/lectia1.php');
echo "<br />". $path_parts['dirname'], "\r\n";
echo "<br />". $path_parts['basename'], "\r\n";
echo "<br />". $path_parts['extension'], "\r\n";
echo "<br />". $path_parts['filename'], "\r\n";
?>
Acest exemplu va returna urmatoarele date de iesire :
plomar/curs-php/lectii
lectia1.php
php
lectia1

3. Vizualizarea si modificarea privilegiilor directoarelor

Pentru a vizualiza privilegiile unui director, puteti folosi aceleasi functii utilizate pentru vizualizarea privilegiilor fisierelor, prezentate in Lectia 17 in tabelul "Functii PHP pentru obtinerea atributelor unui fisier". folosind ca argument numele sau calea directorului. Aceste functii va permit sa vizualizati o varietate de caracteristici ale directoarelor, inclusiv privilegiile de catalog, care sunt returnate de functia fileperms().
Pentru a modifica privilegiile unui director, folositi functia chmod() care a fost descrisa in Lectia 17 la sectiunea "Modificarea privilegiilor unui fisier". Utilizati aceasta functie exact asa cum ati folosi-o pentru a stabili privilegiile de fisier, folosind ca argument un director.

Pentru a putea atribui sau schimba privilegiile unui director sau fisier, modulul PHP instalat trebuie sa aiba drepturi de modificare a directoarelor /fisierelor specificate.

4. Citirea continutului unui director

PHP furnizeaza trei functii care va permit sa cititi continutul unui catalog, ca si cum catalogul ar fi un fisier. Aceste functii sunt:

Rezultatul apelarii functiei readdir() este un sir care contine numele urmatorului fisier sau sub-director din catalogul deschis. Functia returneaza FALSE atunci când au fost citite toate intrarile din catalog.
Iata un exemplu care prezinta modul de utilizare a acestor functii pentru citirea continutului unui catalog:
<?php
$dc = @opendir("home/plomar/curs-php");
if (!$dc) {
      echo "Directorul nu a putut fi deschis";
}
else {
      while ($ok = readdir($dc)) {
            echo "<br /> $ok";
      }
      closedir($dc);
}
?>
Datele de iesire ale exemplului pot fi similare cu cele prezentate mai jos :
style
imgs
lectia
scripts
index.php

- Sau puteti folosi functia scandir($dir). Aceasta preia intr-un Array numele tuturor directoarelor si fisierelor din directorul "$dir". In caz de nereusita returneaza False.

5. Crearea unui director

Pentru a crea un director, utilizati functia mkdir(), care are urmatoarea forma:
                mkdir(nume_dir, mod)
- Unde "nume_dir" este calea sau numele directorului care va fi creat, iar "mod" reprezinta privilegiile care trebuie acordate noului catalog.
In mod normal, prima cifra a argumentului mod trebuie sa fie 0, astfel încât PHP sa-l perceapa ca pe o valoare scrisa în octal. Revizuiti Lectia 17 , sectiunea "Privilegii de fisier"
Functia returneaza TRUE daca creeaza catalogul; în caz contrar, returneaza FALSE.
De exemplu, pentru a crea un catalog denumit "lucru" si pentru a-i atribui privilegiile "rwxr-x--x", utilizati functia mkdir() dupa cum urmeaza:

<?php
$cd = mkdir("lucru", 0751);
if ($cd)
      echo "Directorul a fost creat";
else
      echo "Directorul nu a putut fi creat";
?>
Pentru a modifica numele unui director, puteti folosi functia rename(), care are urmatoarea forma:
                rename(nume_vechi, nume_nou)
Unde "nume_vechi" este numele si calea originala a directorului, iar "nume_nou" este numele nou dorit.

- O lista cu mai multe functii utile in lucrul cu directoare gasiti la pagina -> Functii pentru fisiere si directoare.
Lucrul cu fisiere 3 <<-- Anterior ----------- Urmator -->> Utilizare sesiuni

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Care tag adauga rand nou in paragraf?
<b> <br> <p>
Prima linie ...<br>
Alta linie...
Ce proprietate CSS seteaza spatiu dintre litere?
text-size word-spacing letter-spacing
#id {
  letter-spacing: 2px;
}
Ce functie obtine accesul la un element HTML cu un anumit ID?
getElementById() getElementsByTagName() createElement()
var elm = document.getElementById("theID");
var content = elm.innerHTML;
alert(content);
Clic pe instructiunea "echo" utilizata corect.
echo "CoursesWeb.net" echo "CoursesWeb.net"; echo ""CoursesWeb.net";
echo "Adresa URL: http://CoursesWeb.net";
Care din urmatoarele expresii cu "paint" (a picta) se foloseste pentru forma Negativa?
will paint not paint have painted
She does not paint that landscape.
- Ea nu picteaza acel peisaj.
Care din urmatoarele expresii cu "cantar" (a canta) se foloseste pentru propozitie Negativa?
ir a cantar cantaba no cantar
Ella no canta esa canción.
- Ea nu canta acel cantec.
Utilizare cataloage - Directoare - Tutorial PHP