Jump to content
ZeroCold

Tutorial PHP: Lucrul cu fisiere

Recommended Posts

Folosind PHP-ul se pot executa anumite operatii asupra fisierelor aflate pe server cum ar fi:

fopen() = deschide fisierul indicat

fclose() = inchide fisierul

fread() = citeste continutul fisierului

fwrite() = scrie in fisier

filesize() = indica dimensiunea fisierului

Deschiderea fisierelor

Sintaxa functiei fopen() este:

fopen(param1, param2);

param1 = fisierul, calea catre fisier sau adresa fisierului care va fi deschis

param2 = modul in care va fi deschis fisierul, si poate avea valorile:

r = fisier deschis doar pentru citire

r+ = fisier deschis doar pentru citire si scriere

w = fisier deschis doar pentru scriere

w+ = fisier deschis pentru citire si scriere iar daca nu exista fisierul il creza

a = fisier deschis pentru adaugare la sfarsit

a+ = fisier deschis adaugare la sfarsit iar daca nu exista fisierul il creza

t = fisier deschis in mod text

b = fisier deschis in mod binar

sau combinatii ale acestora.

Citirea fisierelor

Sintaxa functiei fread() este:

$filename="proba.txt";
$handle=fopen($filename, "r");
$contents=fread($handle, filesize($filename));

variabila $handle va fi folosita ulterior si in alte functii.

Scrierea in fisiere

Sintaxa functiei fwrite() este:

fwrite($handle, "continut ce va fi scris in fisier");

Verificarea drepturilor de acces asupra fisierului

Sintaxa functiei is_writable este:

is_writable($filename);

returneaza TRUE daca se poate si FALSE daca nu se poate scrie in fisier.

Inchiderea fisierului

Sintaxa functiei fclose() este:

fclose($handle);

Folosind aceste functii de baza putem incerca cateva exemple simple.

Se verifica dreptul de scriere in fisier. Primul pas este crearea fisierului proba.txt apoi se verifica exemplul care va returna mesajul Acces interzis scrierii in fisier. Se modifica drepturile asupra fisierului adaugand scrierea. Se verifica iar exemplul care va returna mesajul Acces permis scrierii in fisier.

<?php
$filename="proba.txt";
if(is_writable($filename)) { //se verifica dreptul de scriere in fisier
echo "Acces permis scrierii in fisier";
} else {
echo "Acces interzis scrierii in fisier";
}
?>

Adaugam exemplului anterior verificarea deschiderii fisierului:

<?php
$filename="proba.txt";
if(is_writable($filename)) { //se verifica dreptul de scriere in fisier
if(!$handle=fopen($filename, 'a')) { //se verifica deschiderea fisierului
echo "Fisierul <b>".$filename."</b> nu poate fi deschis";
exit; //se incheie executia scriptului
}
echo "Fisierul <b>".$filename."</b> poate fi deschis";
} else {
echo "Acces interzis pentru scriere in fisier";
}
?>

Adaugam exemplului anterior scrierea in fisier si tiparirea continutului sau:

<?php
$filename="proba.txt";
if(is_writable($filename)) { //se verifica dreptul de scriere in fisier
if(!$handle=fopen($filename, 'a')) { //se verifica deschiderea fisierului
echo "Fisierul <b>".$filename."</b> nu poate fi deschis";
exit; //se incheie executia scriptului
}
if(fwrite($handle, date("j-n-Y g:ia")."\r\n")===FALSE) { //testeaza daca se poate scrie in fisier
die ("Nu se poate scrie in ".$filename.""); //iesire
}
fclose($handle);
$matrice=file($filename); //se citeste continutul fisierului si se stocheaza intr-o matrice
foreach ($matrice as $cheie =>$valoare) {
echo $valoare."<br>"; //printeaza cate o valoare pe un rand
}
} else {
echo "Acces interzis pentru scriere in fisier";
}
?>

_______

#Credite: Catalin Drogoreanu

Edited by ZeroCold
  • Upvote 1
Link to comment
Share on other sites

ca alternativa mai simpla se poate folosi file_get_contents() pentru citire si file_put_contents() pentru scriere.

[offtopic]

nu cred ca Catalin ti-a dat acordul de republicare, din cate il cunosc eu pe el nu prea da asa usor acordul sa ii fie republicate articolele...

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...