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
Ce tag adauga imagine in pagina web?
<div> <img> <span>
<img src="http://coursesweb.net/imgs/webcourses.gif" width="191" height="63" alt="Courses-Web" />
Care din aceste coduri CSS afiseaza textul inclinat?
font-style: italic; text-decoration: underline; font-weight: 500;
#id {
  font-style: italic;
}
Clic pe functia jQuery care ascunde animat un element HTML.
click() hide() show()
$(document).ready(function() {
  $(".a_class").click(function(){ $(this).hide("slow"); });
});
Clic pe functia definita corect in PHP.
fname function() {} function fname() {} function $fname() {};
function fname($a, $b) {
  echo $a * $b;
}
Indicati forma pentru Prezent Perfect Continuu a verbului "to walk" (a merge).
have walked have been walking be walking
I have been walking for 5 hours.
- Merg pe jos de 5 ore.
Indicati Trecutul Nedefinit pentru verbul "ser" (a fi) la forma Yo.
será sería fui
Yo fui entrenador.
- Am fost antrenor.
DirectoryIterator - obtine informatii despre fisiere si directoare

Last accessed pages

  1. Pensula si Radiera (1056)
  2. Demonstrative (2190)
  3. Negatia (2674)
  4. Ser si Estar 4 (3037)
  5. Ser si Estar 3 (2901)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (1225)
  2. Coduri pt culori (877)
  3. Curs HTML gratuit Tutoriale HTML5 (732)
  4. Cursuri limba engleza gratuite si lectii online (393)
  5. Gramatica limbii spaniole. Indrumator si prezentare generala (358)