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 meta tag se foloseste pentru scurta descriere a paginii?
<meta content="..."> <meta description="..."> <meta http-equiv="...">
<meta name="description" content="70-160 caractere ce descriu continutul paginii" />
Ce proprietate CSS opreste efectul dat de "float"?
clear text-align position
#some_id {
  clear: both;
}
Clic pe metoda ce creaza un array cu toate elementele din pagina cu un anumit nume de tag.
getElementsByName() getElementById() getElementsByTagName()
var divs = document.getElementsByTagName("div");
var nr_divs = divs.length;
alert(nr_divs);
Indicati functia PHP ce returneaza numarul de elemente dintr-un array.
is_array() count() strlen()
$arr = array(7, 8, "abc", 10);
$nri = count($arr);
echo $nri;        // 4
Indicati adverbul corespunzator adjectivului din paranteza in propozitia: "I live (happy)".
happly happily hapily
I live happily.
- Traiesc fericit (in mod fericit).
Indicati adverbul corespunzator adjectivului din paranteza in propozitia: "Vivo (feliz)".
felizamente felizmente felices
Vivo felizmente.
- Traiesc fericit (cu fericire).
Utilizare cataloage - Directoare - Tutorial PHP