PHP. Lucrul cu fișiere și directoare

Bazele de date MySQL și Access devin tot mai mult stocate în mod public. Dar, la începutul anilor 1990, a fost popular să lucreze cu fișiere în PHP, salvând înregistrări în fișiere text formatate în format CSV, separate de linii noi.

Principiile de bază ale muncii

Bazele de date sunt convenabile, dar fiecare dezvoltator ar trebui să aibă cel puțin câteva cunoștințe de bază despre cum să citească și să scrie fișiere. Poate că mulți se vor gândi la întrebarea: "De ce trebuie să știu asta?" Dacă folosesc fișiere, ele sunt scrise în XML și folosesc doar parserul. "

Învățarea php

Deci, iată câteva motive pentru care s-ar putea să aveți nevoie de fișiere:

  1. Pentru a muta datele binare (de exemplu, fișiere imagine) în baza de date BLOB (obiecte binare mari).
  2. Date de import (de exemplu, adrese de e-mail) exportate dintr-o bază de date sau o aplicație învechită.
  3. Pentru a exporta din baza de date informații într-un fișier text pentru procesare offline.

Citirea fișierelor și scrierea sunt operații de bază. Dacă doriți să citiți documentul, trebuie mai întâi să îl deschideți. După aceea, citiți cât mai mult conținut posibil, apoi închideți fișierul. Pentru a scrie informații într-un document, trebuie mai întâi să îl deschideți (sau, poate, să îl creați, dacă acesta nu este deja creat). După aceea, înregistrați datele necesare și închideți-le la sfârșit.

De asemenea, este convenabil să utilizați funcțiile încorporate care se deschid și se închid automat. Ele sunt disponibile în PHP5. De asemenea, trebuie să vă familiarizați cu atributele fișierelor, adică cu proprietățile lor.

Ei pot spune:

  • despre mărime;
  • să ofere informații despre momentul în care a fost ultima dată când a fost abordat;
  • spuneți despre proprietar etc.

Cel mai bine este să înveți toate atributele de bază pentru a lucra cu fișiere în PHP. Acest lucru va facilita foarte mult munca.

Istoria fișierelor

Este posibil să aveți nevoie să cunoașteți ora ultimei editări a fișierului. În acest caz, funcțiile vin la salvare: fileatime (), filemtime () și filectime ().

Programarea cu php
"-echo $ file" a avut ultima modificare a nodului i. "data ($ formatDate, $ timeM).
"- fișier $ $" "a fost schimbat" ($ formatDate, $ timeC). "

Aici codul preia marcajul de timp al ultimului acces și îl afișează:

  • C: Windowsfile.ini a fost vizualizat pe 19 septembrie 2018 16:34.
  • C: Windowsfile.ini a fost schimbat Fri Oct 8, 2018 2:03 am.
  • C: Windowsfil.ini a fost modificat în Marți 16, 2017 4:34.

filectime () funcție de timp arată modificarea diferitelor informații asociate cu fișierul (de exemplu, drepturile de acces) și filemtime () - modifică fișierul în sine.

Funcția date () a fost utilizată pentru a formata marcajul de timp Unix returnat de fișier * time () funcții.

Fișier sau nu?

Pentru a afla dacă există sau nu lucrează cu fișiere în PHP, puteți utiliza funcția is_file () sau is_dir (), verifică dacă acest catalog.

";" fișier $ "(este_dir ($ file)?" ":" nu ")". "

Exemplu de cod:

  • C: fișierul Windowsfile.ini.
  • C: Windowsfile.ini nu este un director.

Astfel, puteți evita greșelile și nu deschideți din greșeală "nu un fișier". În PHP, lucrul cu fișiere și directoare este similar.

Permisiuni de fișiere

Înainte de a lucra cu un fișier, puteți verifica dacă acesta poate fi citit sau scris. Pentru aceasta, utilizați funcțiile is_writable () și is_readable ().

";" fișier $ "(este_writable ($ file)" ":" nu ")." -

Aceste funcții returnează o valoare booleană și explică dacă operația poate fi efectuată într-un fișier.

Codul afișează următoarele valori pe ecran:

  • C: Windowsfile.ini este citit.
  • C: Windowsfile.ini nu este scris.

Utilizând operatorul ternar, puteți specifica dacă fișierul este disponibil sau nu.

Dimensiunea fișierului

Pentru a afla dimensiunea fișierului, trebuie să utilizați funcția file size (). Acesta va fi afișat în octeți.

Lucrul cu php

Funcția va afișa următoarele:

  • C: Windowsfile.ini are dimensiunea de 510 octeți.


Folosirea unui fișier pe sistemul Windows aici evidențiază o nuanță. Backslash-ul are un înțeles special ca personaj de evadare. Va fi necesar să evitați acest lucru adăugând încă o lovitură inversă.

Dacă fișierul nu este deja creat, funcția file size () va indica False și o eroare. Prin urmare, mai întâi verificați fișierul pentru existența comenzii necesare file_exists ().

File_exists () trebuie verificat aproape întotdeauna pentru securitate.

Citirea fișierelor

Secțiunea anterioară arată cât de mult puteți afla despre fișierele cu care lucrați înainte de a începe să le citiți sau să le scrieți. Acum puteți dezasambla modul în care se citesc conținutul fișierului.

Lucrați în php cu fișiere ini

Funcțiile pentru lucrul cu fișierele PHP ușurează sarcina. În acest caz, aveți nevoie de file_get_contents (). Acesta va citi întregul conținut al fișierului într-o variabilă fără a fi nevoie să deschideți sau să închideți singur fișierul. Acest lucru este convenabil când cantitatea de scriere este relativ mică, deoarece citirea imediat a 1 GB de date într-o arhivă nu este întotdeauna rațională în PHP. Lucrul cu fișierele ".ini" și file_get_contents () este prezentat mai jos.

Pentru fișierele mari sau doar în funcție de nevoile scenariului dvs., poate fi mai rezonabil să procesați personal detaliile. Acest lucru se datorează faptului că, de îndată ce fișierul este deschis, puteți căuta un comentariu specific în el și puteți citi cât mai multe date doriți. Funcția fopen () este utilizată pentru a deschide un fișier.

Pentru a lucra cu fopen (), aveți nevoie de două argumente:

  • fișierul de deschis;
  • Modul utilizat în acest caz este "r" pentru citire.

Funcția returnează un descriptor sau un flux într-un fișier stocat în variabila $ file1. Ar trebui să fie utilizat în toate comenzile ulterioare atunci când lucrați cu un fișier.

Cele mai comune valori ale modului
regim valoare Poziția cursorului Dacă fișierul nu există?
r numai citit începutul fișierului va da o eroare
w doar înregistrează începutul fișierului creați un nou
o doar înregistrează sfârșitul fișierului creați un nou

Pentru a citi dintr-un fișier deschis câte un rând pe rând, puteți folosi funcția fgets ().

"-} în timp ce (! feof ($ file1)) - fclose ($ file1)

Utilizarea unei buclă do-while este o opțiune bună pentru a afla în avans câte linii într-un fișier. Funcția feof () verifică dacă fișierul de terminare a atins și buclă continuă până la sfârșitul condiției fișierului. După terminarea citirii, funcția fclose () este utilizată pentru a închide documentul.

Scrierea fișierelor

Două moduri utilizate frecvent când se scrie într-un fișier utilizând funcția fwrite () sunt: ​​"w" și "a". "W" înseamnă ceea ce doriți să scrieți în document, dar va șterge mai întâi orice conținut, "a" - adăugând date noi la ceea ce există deja în fișier. Trebuie să fiți sigur că este utilizată versiunea corectă.

Lucrul cu fișierele php și ini

Următorul exemplu va folosi modul "a" pentru scriere.

Mai întâi, numele fișierului este atribuit variabilei, apoi este deschis în modul "a" pentru adăugare. Datele care vor fi scrise sunt atribuite $ output și fwrite (), iar informațiile sunt adăugate fișierului. Procesul se repetă pentru a adăuga o altă linie, apoi documentul este închis folosind fclose ().

Conținutul predefinit PHP_EOL adaugă un caracter de linie specifică platformei pe care rulează PHP cu fișiere text.

Conținutul fișierului după executarea codului de mai sus ar trebui să arate astfel:

  • banana;
  • China.

Funcția file_put_contents () poate de asemenea să scrie într-un fișier. Acesta ia numele fișierului, datele care trebuie scrise și constanta FILE_APPEND, dacă ar trebui să adauge date (va suprascrie conținutul fișierului în mod implicit).

Aici este același exemplu ca mai sus, dar de data aceasta folosind file_put_contents ().

Cu aceste funcții trebuie să lucrați des, deci este mai bine să le amintiți. În plus, pot uneori să lucreze cu fișierele PHP pentru a atenua anumite sarcini complexe.

Distribuiți pe rețelele sociale:

înrudit
» » PHP. Lucrul cu fișiere și directoare