Curs Php-mysql

In acest tutorial e prezentata clasa PHP DirectoryIterator, adaugata in PHP 5+.
Aceasta clasa e utila in parcurgerea unui director, pentru a obtine informatii despre fisierele si directoarele din el (nume, marime, data ultima accesare, etc.).
Ca orice alta clasa, pentru a folosi DirectoryIterator trebuie mai intai creata o instanta de obiect la aceasta clasa:
$objDI = new DirectoryIterator($path);
- $path - reprezinta calea directorului ce trebuie citit. Pentru directorul curent se poate folosi ca $path: __DIR__ , sau dirname(__FILE__).
Apoi se pot aplica metodele clasei.
- Pentru a intelege mai bine ce face DirectoryIterator , iata cateva exemple practice.

Obtine calea la fisier

- Se foloseste metoda getPath().
$objDI = new DirectoryIterator(__DIR__);
echo $objDI->getPath();           // /home/examples/public_html

Instanta la clasa DirectoryIterator contine un obiect cu date despre directoarele si fisierele din directorul accesat. Acest obiect poate fi parcurs cu o instructiune foreach(), ca sa se obtina datele fiecarui element.

Obtine numele fisierelor din directorul curent

- Se foloseste isFile() ca sa verifice daca e fisier, si getFilename() sa preia numele.
$objDI = new DirectoryIterator(__DIR__);
foreach($objDI as $fileinfo) {
  // daca e fisier
  if($fileinfo->isFile()) {
    echo $fileinfo->getFilename() .'<br/>';
  }
}

/* Returneaza ceva similar cu:
 admin.php
 coursesweb.jpg
 jquery.js
 course.html
*/

Afla marimea fisierelor

- Se foloseste isFile() ca sa verifice daca e fisier, si getSize() sa preia marimea (in bytes).
$objDI = new DirectoryIterator(__DIR__);
foreach($objDI as $fileinfo) {
  // daca e fisier
  if($fileinfo->isFile()) {
    $filesize = $fileinfo->getSize() / 1024;          // 1 KB = 1024 bytes
    echo $fileinfo->getFilename() .' '. $filesize .' KB<br/>';
  }
}

/* Returneaza ceva similar cu:
 admin.php 3.1572265625 KB
 coursesweb.jpg 11.498046875 KB
 jquery.js 122.095703125 KB
*/

Obtine numele directoarelor din cel curent

- Se foloseste isDir() sa verifice daca e director, isDot() prin care se verifica sa nu fie '.' sau '..', si getFilename() sa preia numele.
$objDI = new DirectoryIterator(__DIR__);
foreach($objDI as $fileinfo) {
  // daca e director, dar nu '.' sau '..'
  if($fileinfo->isDir() && !$fileinfo->isDot()) {
    echo $fileinfo->getFilename() .'<br/>';
  }
}

/* Returneaza ceva similar cu:
 Pages
 CoursesWeb
 Tutorials
*/

Afla permisiunile CHMOD

- Se foloseste isDot() sa nu fie '.' sau '..', si getPerms() sa preia permisiunile (in numar intreg decimal).
$objDI = new DirectoryIterator(__DIR__);
foreach($objDI as $fileinfo) {
  // daca nu e '.' sau '..'
  if(!$fileinfo->isDot()) {
    // preia octal din numar intreg decimal
    $octal_perms = substr(sprintf('%o', $fileinfo->getPerms()), -4);
    echo $fileinfo->getFilename() .' '. $octal_perms .'
'; } } /* Returneaza ceva similar cu: admin.php 0644 Pages 0755 Tutorials.html 0644 */

Verifica daca directoarele si fisierele pot fi scrise

- Se foloseste isWritable(). Returneaza True daca pot fi scrise date cu PHP in fisierul /directorul curent, altfel False.
$objDI = new DirectoryIterator(dirname(__FILE__));
foreach($objDI as $fileinfo) {
  if($fileinfo->isWritable()) {
    echo $fileinfo->getFilename() .' poate fi scris<br/>';
  }
}

/* Returneaza ceva similar cu:
 coursesweb.htm  poate fi scris
 Pages  poate fi scris
 websites.txt  poate fi scris
*/

Afla data ultimei accesari a fisierelor

- Se foloseste isFile() ca sa verifice daca e fisier, si getATime() sa preia data ultimei accesari (in Unix timestamp).
$objDI = new DirectoryIterator(dirname(__FILE__));
foreach($objDI as $fileinfo) {
  if($fileinfo->isFile()) {
    echo $fileinfo->getFilename() .' '. $fileinfo->getATime() .'<br/>';
  }
}

/* Returneaza ceva similar cu:
 coursesweb.htm  1319637336
 Pages  1319880959
 websites.txt 1327757524
*/

• Ca sa vedeti lista cu toate metodele clasei DirectoryIterator, vizitati: Clasa DirectoryIterator.

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Care tag este element de tip bloc?
<div> <img> <span>
<div>Web Programming and Development</div>
Care cod CSS afiseaza textul subliniat?
font-style: italic; text-decoration: underline; font-weight: 500;
h2 {
  text-decoration: underline;
}
Clic pe functia JavaScript care apeleaza o alta functie dupa un anumit timp.
insertBefore() setTimeout() querySelector()
function someFunction() { alert("CoursesWeb.net"); }
setTimeout("someFunction()", 2000);
Clic pe instructiunea care returneaza numarul total de elemente dintr-un array asociativ.
count($array) count($array, 1) strlen()
$food =["fruits" =>["banana", "mar"), "veggie" =>["ceapa", "rosie"));
$nr_food = count($food, 1);
echo $nr_food;       // 6
Indicati Viitorul Perfect la negativ al verbului din paranteze, in propozitia: "The child (to not play) by Sunday".
has't played haven't been playing will haven't played
The child will haven't played by Sunday.
- Copilul nu s-ar fi jucat pana duminica.
Indicati Viitorul Perfect pentru verbul "contar" (a povesti) la forma "Él".
habrá contado va a contar contaba
Él no habrá contado el cuento.
- El nu ar fi spus povestea.
DirectoryIterator - obtine informatii despre fisiere si directoare

Last accessed pages

  1. Dreptunghi, Oval, Poligon - Stea (1638)
  2. Gramatica limbii engleze - Prezentare Generala (210581)
  3. Prepozitii - Prepositions (33035)
  4. Script pentru ceas (1706)
  5. Gradele de comparatie: comparative, superlative (50455)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (1261)
  2. Curs HTML gratuit Tutoriale HTML5 (967)
  3. Coduri pt culori (722)
  4. Creare si editare pagini HTML (567)
  5. Conditional IF in Limba Engleza - Fraze Conditionale (525)