Putem folosi PHP pentru a crea și citi fișiere într-o varietate de formate, permițându-ne să creăm pagini complet noi, să stocăm informații sub formă de document, să copiem fișiere și multe altele. Primul pas în acest proces este crearea unui fișier nou sau deschiderea unui fișier existent cu care dorim să lucrăm. Pentru a face acest lucru, folosim funcția fopen() pentru a declara locația fișierului și modul în care intenționăm să interacționăm cu conținutul său.
PHP urmează abordarea Unix/Linux privind permisiunile fișierelor, care este mai granulară față de ceea ce utilizatorii Microsoft și Apple sunt obișnuiți de obicei. În această abordare, un anumit fișier poate avea niveluri de permisiune diferite în funcție de faptul dacă persoana care editează fișierul este proprietarul, aparține aceluiași grup de sistem ca și proprietarul sau se încadrează în categoria „oricine altcineva”. În cadrul acestor trei categorii putem specifica, de asemenea, dacă persoana respectivă are permisiunea de a citi, scrie sau executa fișierul, în orice combinație.
Una dintre metodele utilizate pentru a reprezenta permisiunile este cu un șir de litere și cratime, folosind R, W și X pentru a reprezenta citire, scriere și executare. În această abordare, trei grupări ale acestor litere sunt legate între ele în ordinea: proprietar, grup, altul, citire, scriere și executare. Un fișier în care toată lumea are permisiuni complete ar fi reprezentat de rwxrwxrwx, în timp ce un fișier în care proprietarul poate face orice, alții din grupul său pot citi și executa și oricine altcineva poate executa ar fi afișat ca rwxr-xr—. Liniuțele de aici indică faptul că lipsește permisiunea. Apartenența la grup se referă la grupul cu care este asociat contul dvs. pe server, care poate fi orice serverului i se spune să recunoască, cum ar fi administratori, utilizatori, oaspeți, profesori, studenți și așa mai departe. Dacă proprietarul fișierului nostru imaginar ar fi în grupul de administratori, alți administratori ar putea citi și executa fișierul, în timp ce oricine din orice alt grup l-ar putea executa doar fără a-i vedea conținutul.
Înțelegerea acestei structuri este importantă pentru a înțelege de ce sunt necesare metodele de deschidere a fișierelor și ne poate ajuta, de asemenea, să înțelegem problemele legate de deschiderea fișierelor atunci când nu sunt utilizate permisiunile corespunzătoare. De fiecare dată când deschidem un fișier în PHP, trebuie să folosim una dintre următoarele metode, care vor determina ce ne permite PHP să facem cu fișierul.
Tabelul 13 Metode de fișier PHP
| mod | Descriere |
| ‘r’ | Deschideși doar pentru citire; plasați indicatorul de fișier la începutul fișierului. |
| ‘r+’ | Deschideși pentru citire și scriere; plasează indicatorul de fișier la începutul fișierului. |
| ‘w’ | Deschideți doar pentru scriere; plasați indicatorul de fișier la începutul fișierului și trunchiați fișierul la lungimea zero. Dacă fișierul nu există, încercați să îl creați. |
| ‘w+’ | Deschideți pentru citire și scriere; plasați indicatorul de fișier la începutul fișierului și trunchiați fișierul la lungimea zero. Dacă fișierul nu există, încercați să îl creați. |
| ‘a’ | Deschideți doar pentru scriere; plasați indicatorul de fișier la sfârșitul fișierului. Dacă fișierul nu există, încercați să îl creați. |
| ‘a+’ | Deschideți pentru citire și scriere; plasați indicatorul de fișier la sfârșitul fișierului. Dacă fișierul nu există, încercați să îl creați. |
| ‘x’ | Creați și deschideți doar pentru scriere; plasați indicatorul de fișier la începutul fișierului. Dacă fișierul există deja, apelul fopen() va eșua, returnând FALSE și generând o eroare de nivel E_WARNING. Dacă fișierul nu există, încercați să îl creați. Aceasta este echivalentă cu specificarea indicatorilor O_EXCL|O_CREAT pentru apelul de sistem subiacent open(2). |
| ‘x+’ | Creați și deschideți pentru citire și scriere; în caz contrar, se comportă la fel ca „x”. |
| ‘c’ | Deschideți fișierul doar pentru scriere. Dacă fișierul nu există, acesta este creat. Dacă există, nu este nici trunchiat (spre deosebire de „w”), nici apelul acestei funcții nu eșuează (cum este cazul cu „x”). Indicatorul de fișier este poziționat la începutul fișierului. Acest lucru poate fi util dacă se dorește obținerea unei blocări consultative (vezi flock()) înainte de a încerca să modificați fișierul, deoarece utilizarea „w” ar putea trunchia fișierul înainte de obținerea blocării (dacă se dorește trunchierea, se poate utiliza ftruncate() după ce este solicitată blocarea). |
| ‘c+’ | Deschideți fișierul pentru citire și scriere; în caz contrar, se comportă la fel ca „c”. |
Sursa: PHP.net [CC-A 3.0]
Sursa: Michael Mendez, The Missing Link – An Introduction to Web Development and Programming (CC BY-NC-SA 3.0 License), Published by Open SUNY Textbooks, Milne Library (IITG PI), State University of New York at Geneseo. Traducere de Nicolae Sfetcu
Descoperă mai multe la MultiMedia
Abonează-te ca să primești ultimele articole prin email.



Lasă un răspuns