Aici gasiti cateva din cele mai utile functii PHP pentru lucru cu sistemul de fisiere si directoare.



1.   basename(adresa, "sufix")

- Returneaza partea cu numele fisierului dintr-o adresa URL. "sufix" e optional, daca e specificat, functia elimina si pe acesta de la sfarsitul numelui.

<?php
$url = 'https://marplo.net/php-mysql/index.php';
$file = basename($url);       // $file e "index.php"
$file = basename($url, ".php");       // $file e "index"
?>

2.   chmod(file, mod)

- Modifica prmisunile CHMOD a lui "file" (cale si nume fiser) cu cele specificate la "mod" (0777, 0644, ...). Daca modificarea reuseste returneaza TRUE, in caz contrar, FALSE.

<?php
chmod("director/fisier.ext", 0755);
?>

3.   copy(sursa, destinatie)

- Copie fisierul specifical la "sursa", in locatia "destinatie" (aici poate fi specificata si denumirea fisierului la dstinatie). Aca fisierul deja exista, va fi inlocuit de cel copiat. Funtctia returneaza TRUE in caz de reusita sau FALSE.

"> <?php
$file = 'examplu.txt';
$newfile = 'dir/examplu.txt.bak';

if (!copy($file, $newfile)) {
  echo "Fisierul$file nu a putut fi copiat \r\n";
}
?>

4.   dirname(adresa)

- Returneaza numele directorului din "adresa", fara numele fisierului sau alte extensii.

<?php
$url = 'marplo.net/php-mysql/index.php';
$dir = dirname($url);

echo $dir;       // marplo.net/php-mysql
?>

5.   disk_free_space(cale_dir)

- Returneaza spatiul liber al sistemului in directorul specificat la "cale_dir". Returneaza numarul de bytes liberi sau FALSE daca functia esueaza.

<?php
$dir = '/';       // Directorul radacina
echo disk_free_space($dir);       // 123456789
?>

6.   disk_total_space(cale_dir)

- Returneaza spatiul total al sistemului in directorul specificat la "cale_dir". Returneaza numarul total de bytes sau FALSE daca functia esueaza.


7.   fopen("fisier", "mod")

- Deschide un pointer la "fisier", in modul de lucru "mod". "mod" poate fi ("b" e indicat sa fie adaugat pentru sistemele windows):

<?php
$file = 'tutoriale.php';
$fo = fopen($file, "a+b");       // Deschide fisierul, in modul de citire si adaugare date
fclose($fo);       // Inchide pointer-ul, elibereaza memoria folosita
?>

8.   fclose(file_pointer)

- Inchide deschiderea unui fisier cu "fopen()" (transmisa la "file_pointer"), eliberand memoria folosita de acea deschidere. Returneaza TRUE daca functia reuseste, in caz contrar, FALSE.

<?php
$file = 'tutoriale.php';
$fo = fopen($file, "rb");       // Deschide fisierul, in modul de citire ("rb") si creaza pointer-ul fisierului
fclose($fo);       // Inchide pointer-ul, elibereaza memoria folosita
?>

9.   feof(file_pointer)

- Testeaza sfarsitul unnui fisier cu deschiderea specificata la "file_pointer". Functie utila cand fisierul e citit linie cu linie. Returneaza TRUE daca pointer-ul e la sfarsitul fisierului, altfel, returneaza FALSE.

<?php
$file = 'tutoriale.php';
$fo = fopen($file, "rb");       // Deschide fisierul, in modul de citire ("rb")

// Parcurge fisierul pana ajunge la sfarsit (atunci "feof" e TRUE - adica "!feof" e FALSE)
while(!feof) {
}

fclose($fo);       // Inchide pointer-ul, elibereaza memoria folosita
?>

10.   fgets("pointer", lungime")

- Citeste numarul de caractere specificat la "lungime" dintr-un fisier deschis si specificat la "pointer". Citirea se face din locul unde a ajuns pointer-ul in fisier, daca "lungime" nu e specificat citirea se va face pana la sfarsitul randului curent (daca lungimea liniei e mai mare de 8 KB, e indicata specificarea ei).

<?php
$file = 'cursuri.php';
$fo = fopen($file, "rb");       // Deschide fisierul, in modul de citire ("rb")
$text = fgets($fo, 250);       // Citeste 250 caractere din primul rand al fisierului
fclose($fo);
?>

11.   file_exists("fisier")

- Returneaza TRUE daca "fisier" exista, altfel, returneaza FALSE.

<?php
if (file_exist('dir/file.ext')) echo 'Fisierul exista';
else echo 'Fisierul nu exista';
?>

12.   file_get_contents("fisier")

- Returneaza tot continutul din "fisier" intr-un sir. Daca "fisier" nu poate fi citit, returneaza FALSE.


13.   file_put_contents("fisier", "continut")

- Scrie in "fisier" sirul specificat la "continut". Daca fisierul exista, suprascrie datele existente, daca nu exista, il creaza. Daca nu poate scrie in "fisier", returneaza FALSE.

<?php
$file = 'cursuri.php';
$context = file_get_contents($file);       // Preia continutul fisierului
$context .= 'Sir nou adaugat dupa cel existent';

file_put_contents($file, $context);       // Adauga continutul din $context in $file
?>

14.   file("fisier", flag)

- Preia continutul fisierului intr-un array, fiecare linie din "fisier" va fi un element din matrice. "flag" e optional, in locul lui se poate adauga: FILE_IGNORE_NEW_LINES (nu va prelua si caracterele de linie noua), FILE_SKIP_EMPTY_LINES (va sari peste randurile goale).

<?php
$aray_file = file('tutorials.php');
// Sau
$aray_file = file('tutorials.php', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

// Afiseaza primul rand
echo $aray_file[0];
?>

15.   fileatime("file")

- Returneaza timestamp-ul (timpul UNIX) cand a fost accesat ultima data "file", sau in caz de nereusita, FALSE.

<?php
$file = 'somefile.txt';
if (file_exists($file)) {
  echo "$file a fost accesat in data: " . date("F d Y H:i:s", fileatime($file));
}

// Afiseaza ceva de genul:       somefile.txt a fost accesat in data: April 14 2010 22:16:23
?>

16.   filectime("file")

- Returneaza timestamp-ul (timpul UNIX) cand a fost modificat ultima data "file", sau in caz de nereusita, FALSE. Similara cu aceasta e functia filemtime()


17.   fileperms("file")

- Returneaza permisiunile CHMOD ale "file", sau FALSE.


18.   filesize("file")

- Returneaza marimea lui "file", in bytes, sau FALSE.


19.   flock(file_pointer, flag)

- Blocheaza / deblocheaza accesul de citire sau scriere la un fisier deschis cu "fopen()", specificat la "file_pointer". Returneaza TRUE, sau daca functia esueaza, FALSE. Modul de blocare, sau deblocarea, se specifica la "flag", acesta putand fi:

<?php
$fo = fopen("fisier.txt", "r+");

if (flock($fo, LOCK_EX)) {       // blocheaza alt acces la fisier pt scriere
  fwrite($fo, "Scrie ceva in el.");
  flock($fo, LOCK_UN);       // Elibereaza blocarea
} else {
  echo "Nu poate bloca fisierul!";
}

fclose($fo);
?>

20.   fseek(file_pointer, pozitie)

- Muta pozitia pointer-ului dintr-un fisier deschis cu "fopen()" la numarul de caractere specificat de "pozitie" (0 e primul caracter). In caz de succes returneaza 0, altfel, -1.

<?php
$fo = fopen('somefile.txt', 'r+b');
fseek($fo, 199);       // Muta pointerul in fisier la al 200-lea caracter
?>

21.   ftell(file_pointer)

- Returneaza pozitia curenta a indicatorului (pointer) dintr-un fisier deschis cu "fopen()" (specificat la "file_pointer"). In caz de esec returneaza FALSE.

<?php
// Deschide un fisier si citeste cateva caractere
$fo = fopen("dir/file.txt", "rb");
$data = fgets($fo, 12);

// Afiseaza locatia unde e acum pointer-ul in fisier
echo ftell($fo);       // 11

fclose($fo);
?>

22.   fwrite(file_pointer, 'sir')

- Scrie intr-un fisier deschis cu "fopen()" (specificat la "file_pointer") continutul din "sir".

<?php
// Daca poate deschide fisierul pt. adaugare date
if ($fo = fopen('tutorial.txt', "a+b")) {
  $add = 'Textul ce va fi adaugat';

  // Daca nu poate adauga datele, returneaza eroare
  // Altfel, confirmare
  if (fwrite($fo, $add) === FALSE) echo 'Eroare, textul nu a putut fi adaugat';
  else echo 'Datele au fost scrise';

  fclose($fo);
}
?>

23.   is_dir("nume")

- Returneaza TRUE daca "nume" exista si este un director, altfel returneaza FALSE.

<?php
if (is_dir('php')) echo 'php este un director in cel curent';
?>

24.   is_file("nume")

- Returneaza TRUE daca "nume" exista si este un fisier, altfel returneaza FALSE.

<?php
if (is_file('php/tutoriale.php')) echo 'tutoriale.php este un fisier in directorul "php" din cel curent';
?>

25.   is_readable("nume")

- Returneaza TRUE daca "nume" (fisier sau director) exista si poate fi citit, altfel returneaza FALSE.

<?php
// Daca fisierul poate fi citit, il citeste si afiseaza continutul
if (is_readable('php/tutoriale.php')) readfile('php/tutoriale.php');
?>

26.   is_uploaded_file("fisier_up")

- Returneaza TRUE daca "fisier_up" a fost incarcat pe server, prin upload si primit prin $_POST, altfel returneaza FALSE. Parametrul functiei trebuie sa fie de forma "$_FILES['userfile']['tmp_name']".

<?php
// Daca fisierul poate fi citit, il citeste si afiseaza continutul
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) echo 'Fisierul a fost incarcat';
else echo 'Fisierul nu a putut fi incarcat';
?>

27.   is_writable("nume")

- Returneaza TRUE daca "nume" (fisier sau director) exista si poate sa scrie in el, altfel returneaza FALSE.

<?php
if (is_writable('php/tutoriale.php')) echo 'tutoriale.php poate fi scris';
?>

28.   mkdir("dir", chmod)

- Returneaza TRUE daca a putut crea directorul "dir" cu permisiunile specificate la "chmod", altfel returneaza FALSE.

<?php
if (mkdir('php')) echo 'Directorul a fost creat';
?>

29.   pathinfo("adresa_file")

- Returneaza o matrice cu informatiile: ale "adresa_file".

<?php
$path_parts = pathinfo('/www/htdocs/index.php');

echo $path_parts['dirname'];       // /www/htdocs
echo $path_parts['basename'];       // index.php
echo $path_parts['extension'];       // php
echo $path_parts['filename'];       // index (incepand cu PHP 5.2.0)
?>

30.   readfile("fisier")

- Citeste si returneaza la browser (afiseaza) continutul din "fisier". In caz de esec returneaza FALSE.


31.   realpath("cale_adresa")

- Returneaza calea reala in sistem a unei adrese din "cale_adresa", rezolvand referinte ca .. / ./ ../.

<?php
echo realpath('./../../etc/passwd');       // /etc/passwd
echo realpath('/windows/system32');       // C:\WINDOWS\System32
echo realpath(__FILE__);       // Va returna calea absoluta pe server a fisierului curent
?>

32.   rename("nume", "nume_nou"

- Redenumeste un director sau fisier specificat la "nume", cu "nume_nou". In caz de succes returneaza TRUE, altfel FALSE.

<?php
rename("dir/file.txt", "dir/my_file.txt");
?>

33.   rewind(file_pointer)

- Readuce pozitia pointer-ului dintr-un fisier deschis cu "fopen()" (specificat la "file_pointer") la inceputul fisierului (0, primul caracter). In caz de succes returneaza TRUE, altfel FALSE.

<?php
// Deschide un fisier si citeste cateva caractere
$fo = fopen("tutorial.txt", "rb");
$data = fgets($fo, 12);

// Afiseaza locatia unde e acum pointer-ul in fisier
echo ftell($fo);       // 11

rewind($fo);       // Readuce pointer-ul la inceput

// Afiseaza iar locatia indicatorului
echo ftell($fo);       // 0

fclose($fo);
?>

34.   rmdir("dir")

- Sterge directorul specificat la "dir". Acesta trebuie sa fie gol. In caz de succes returneaza TRUE, altfel FALSE.


35.   tempnam("dir", "prefix")

- Creaza un fisier cu nume unic, avand la inceput in nume sirul specificat la "prefix", in directorul "dir". Ii acorda CHMOD 0600. Daca directorul specificat nu exista, creaza fisierul in directorul "temp" al sistemului si returneaza numele fisierului. In caz de nereusita returneaza FALSE.


36.   tmpfile()

- Creaza un fisier temporar, cu nume unic. Returneaza un pointer de fisier, ca si "fopen()", cu modul de deschidere "w+". In caz de nereusita returneaza FALSE. Cu "fclose()" fisierul temporar va fi sters.

<?php
$temp = tmpfile();       // Creaza fisierul temporar
fwrite($temp, "Text scris in fisierul temporar creat");       // Scrie ceva in el
rewind($temp);       // Readuce pointerul la inceputul fisierului
echo fread($temp, 1024);       // Citeste si afiseaza primii 1024 bytes
fclose($temp);       // Inchide si sterge fisierul temporar creat
?>

37.   unlink("fisier")

- Sterge fisierul specificat. In caz de succes returneaza TRUE, altfel FALSE.

<?php
if (unlink("test.txt")) echo 'Fisierul a fost sters.';
else echo "Stergerea fisierului nu a reusit.";
?>

- Lista completa cu functiile PHP pentru lucru cu sistemul de fisiere si directoare o gasiti la pagina Functii pentru fisiere si directoare.

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Care tag afiseaza textul oblic?
<strong> <pre> <em>
<p>Cursuri, Jocuri, Anime: <em>www.MarPlo.net</em></p>
Care proprietate CSS defineste spatiul dintre continutul elementului si bordura lui?
margin padding position
h3 {
  padding: 2px 0.2em;
}
Clic pe metoda ce returneaza primul element indicat de selectorii specificati.
getElementsByName() querySelector() querySelectorAll()
// preia primul Div cu class="cls", si afiseaza continutul
var elm = document.querySelector("div.cls");
alert(elm.innerHTML);
Indicati variabila PHP ce contine datele din formular trimise cu method="post".
$_SESSION $_GET $_POST
if(isset($_POST["field"])) {
  echo $_POST["field"];
}
Indicati pronumele corespunzator celui din paranteza in propozitia: "(Noi) speak english".
I They We
We speak english.
- Noi vorbim engleza.
Indicati pronumele corespunzator celui din paranteza in propozitia: "(Noi) hablamos español".
Ellos Vosotros Nosotros
Nosotros hablamos español.
- Noi vorbim spaniola.
Functii pentru fisiere si directoare

Last accessed pages

  1. Prezentul simplu si continuu - Present Tense Simple and Continuous (43432)
  2. Gramatica limbii engleze - Prezentare Generala (92209)
  3. Lucru cu Baza de Date MySQL: Constructor de Comenzi SQL (329)
  4. Curs PHP MySQL, Tutoriale si Scripturi PHP (9984)
  5. Pronumele in limba engleza - Pronouns (16296)

Popular pages this month

  1. Gramatica limbii engleze - Prezentare Generala (2254)
  2. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (871)
  3. Gramatica limbii spaniole. Indrumator si prezentare generala (718)
  4. Exercitii engleza - English Tests and exercises - Grammar (675)
  5. Alphabet and Pronunciation - Alfabetul si pronuntia in limba engleza (606)