PHP obține informații despre fișier. Obținerea de informații despre un fișier

Orice software pe care doriți să-l rulați pe serverul dvs. web are anumite cerințe pe care trebuie să le îndeplinească. De exemplu, WordPress necesită versiunea PHP 5.2.4 sau mai mare. În funcție de server, puteți modifica unele setări PHP, altele, dimpotrivă, au interzisă modificarea, totuși informații despre toate acestea pot fi găsite în fișierul phpinfo. În acest tutorial, veți învăța cum să creați un fișier phpinfo și să aflați valorile și starea modulelor PHP. Acest lucru poate fi util și pentru a obține informații despre contul dvs. de găzduire, cum ar fi max_execution_time, memory_limit, post_max_size și altele.

Înainte de a începe acest ghid, veți avea nevoie de următoarele:

  • Acces la panoul de control al găzduirii sau la contul FTP

Opțiunea 1 - Verificarea informațiilor PHP prin panoul de control al găzduirii

La Hostinger, informațiile PHP ale contului dvs. pot fi găsite în Avansat → Informații PHP. Aceasta este o caracteristică foarte convenabilă, deoarece nu va trebui să creați fișiere suplimentare pe hosting.

După aceasta, veți fi dus la o pagină cu toate informațiile necesare despre versiunea, modulele și valorile dvs. PHP. Pentru a căuta un anumit modul sau funcție, utilizați căutarea apăsând comanda rapidă de la tastatură CTRL+F.

Felicitări! Ați învățat cum să vă accesați informațiile php prin panoul de control Hostinger.

Opțiunea 2 - Verificarea informațiilor PHP prin crearea unui fișier phpinfo.php

Nu vă faceți griji dacă platforma dvs. de găzduire nu acceptă caracteristica afișată în Opțiunea 1. Același rezultat poate fi obținut prin crearea unui fișier special în contul tău de găzduire. Fișierul va afișa, de asemenea, toate informațiile despre PHP-ul dvs. și va fi accesibil prin browser.

Pasul 2.1 - Creați un fișier phpinfo

Există mai multe moduri de a crea un fișier phpinfo. În acest tutorial vom folosi . Cu toate acestea, același rezultat poate fi obținut prin crearea fișierului pe computerul local și apoi încărcarea fișierului pe server prin .

Conectați-vă la panoul de control al găzduirii și deschideți Manager de fișiere. Faceți clic pe butonul Fișier nou pentru a crea un nou fișier.

În primul câmp, indicați calea în care va fi creat noul fișier. În continuare, în câmp Nume nou de fișier intra phpinfo.php. În cele mai multe cazuri, puteți lăsa calea neschimbată /public_html. În acest caz, fișierul va fi creat în directorul rădăcină al site-ului dvs.

Pasul 2.2 - Editarea fișierului

În această etapă aveți deja un fișier gol phpinfo.phpîn catalog public_html. Copiați următorul cod într-un fișier și faceți clic pe pictogramă Salvaîn colțul din stânga ecranului.

Gata, ai creat cu succes un fișier PHP care va afișa toți parametrii PHP-ului tău. După cum am menționat mai devreme, același rezultat poate fi obținut folosind:

  1. Utilizați orice editor de text și creați un fișier phpinfo.php pe computerul dvs.
  2. Adăugați următorul cod la fișier:
  1. Încărcați fișierul folosind FTP în directorul dvs public_html.

Pasul 2.3 - Verificarea informațiilor PHP prin browser

Dacă totul a fost făcut corect, acum poți accesa fișierul creat adăugând la sfârșitul numelui tău de domeniu /phpinfo.php. De exemplu, http://yourdomain.ru/phpinfo.php

Ar trebui să vedeți un rezultat similar când deschideți această pagină printr-un browser:

Pe această pagină veți putea vedea toate setările dvs. PHP.

Concluzie

Prin finalizarea acestui tutorial, ați învățat cum să creați un fișier phpinfo și să verificați informații despre setările dvs. PHP. Aceste informații sunt utile dacă doriți să cunoașteți setările dvs. de găzduire sau să rulați software care necesită anumite module PHP.

PHP

file_exists("test.txt")//Fișierul există? filesize("test.txt");//Aflați dimensiunea fișierului //Este returnat marcajul de timp: fileatime("test.txt");//Data ultimului acces la fișier //date("d M Y" , $atime); filemtime("test.txt");//Data modificării fișierului //data("d M Y", $mtime); filecttime("test.txt");//Data creării fișierului (Windows) //date("d M Y", $ctime);

Fișiere: moduri de operare

PHP

resource fopen (nume fișier șir, mod șir) // resursă - returnează un pointer către fișier în caz de succes, sau FALSE în caz de eroare
Mod de operare Descriere
r deschide fișierul numai în citire;
r+ deschideți fișierul pentru citire și scriere;
w deschideți fișierul doar pentru scriere. Dacă există, atunci conținutul curent al fișierului este distrus. Poziția curentă este setată la început;
w+ deschideți fișierul pentru citire și scriere. Dacă există, atunci conținutul curent al fișierului este distrus. Poziția curentă este setată la început;
O deschide fișierul pentru scriere. Poziția curentă este setată la sfârșitul fișierului;
a+ deschideți fișierul pentru citire și scriere. Poziția curentă este setată la sfârșitul fișierului;
b procesează fișierul binar. Acest indicator este necesar atunci când lucrați cu fișiere binare pe Windows.

Deschiderea și închiderea fișierelor în PHP

PHP

$fi = fopen("test.html", "w+") sau die ("Eroare"); //Exemple $fi = fopen("http://www.you/test.html","r"); $fi = fopen("http://ftp.you/test.html", "r"); //Închide fclose($fi)

Citirea fișierelor în PHP

PHP

//Citiți fișierul fread(int fi, int length) $str = fread($fi, 5); // Citiți primele 5 caractere echo $str;

// deoarece cursorul s-a mutat $str = fread($fi, 12); // Citiți următoarele 12 caractere echo $str; fgets(int fi[, int length]) // Citiți o linie dintr-un fișier fgetss(int fi, int length [, șir admisibil]) // Citiți o linie dintr-un fișier și eliminați etichetele HTML // șir permis - etichete care trebuie lăsat fgetc(int fi) //Citește un caracter dintr-un fișier Inițial, scrierea va avea loc la începutul fișierului, prin suprascrierea datelor existente, dacă există. Prin urmare, dacă trebuie să scrieți ceva la sfârșitul fișierului, trebuie să setați cel potrivit modul de citire

, de exemplu, a+ .

PHP

Manipularea cursorului în fișierele PHP

int fseek(int fi, int offset [, int unde]) //Setarea cursorului // int fi - pointer către fișier //offset - numărul de caractere de mutat. //de unde: //SEEK_SET - mișcarea începe de la începutul fișierului; //SEEK_CUR - mișcarea începe de la poziția curentă; //SEEK_END - mișcarea începe de la sfârșitul fișierului. fseek($fi, -10, SEEK_END); //Citește ultimele 10 caractere $s = fread($fi, 10); $pos = ftell($fi); //Aflați poziția curentă rewind($f)//resetați cursorul bool feof($f) //sfârșitul fișierului

PHP

Lucru direct cu fișiere (date) în PHP

array file(string filename) // Obține conținutul fișierului sub forma unei matrice // O altă opțiune pentru lucrul direct cu datele file_get_contents(string filename) // Citirea (obținerea întregului fișier într-o singură linie) // Scrierea în fișierul (inițial suprascris) file_put_contents(string nume fișier, date mixte[,int flag]); //FILE_APPEND // Scrieți la sfârșitul fișierului: file_put_contents("test.txt", "data", FILE_APPEND); //Dacă scrieți o matrice, $array = array("I", "live"); file_put_contents("test.txt",$array); //apoi primim "Ilive"

PHP

Gestionarea fișierelor în php

copy(sursă șir, destinație șir); // Copierea fișierului rename(str nume vechi, str nume nou); // Redenumiți fișierul unlink(string filename); // Ștergerea unui fișier

//Setări PHP.ini file_uploads (on|off) // permite sau nu permite încărcarea fișierelor upload_tmp_dir // folder temporar pentru fișierele încărcate. în mod implicit, folderul temporar upload_max_filesize (implicit = 2 Mb) // max. dimensiunea fișierului de încărcare post_max_size // dimensiunea totală a formularului trimis (trebuie să fie mai mare decât upload_max_filesize) // Încărcare simplă

HTML

Lucrul cu fișierele de pe server

PHP

//Accept date $tmp = $_FILES["userfile"]["tmp_name"]; $name = $_FILES["userfile"]["nume"]; //Muta fisierul move_uploaded_file($tmp, nume); move_uploaded_file($tmp, „încărcare/”.nume); // redirecționează fișierul în folderul de încărcare // în raport cu fișierul curent // Ce este în matricea $_FILES $_FILES[„userfile”][”name”] // numele fișierului, de exemplu, test.html $_FILES[ "userfile"][" tmp_name"] // nume de fișier temporar (cale) $_FILES["userfile"]["size"] // dimensiune fișier $_FILES["userfile"]["tip"] // tip fișier $ _FILES["userfile"] ["eroare"] // 0 - fără erori, număr - da

Funcția colectează împreună toate informațiile produse de sistemul de operare pentru fișierul specificat și le returnează ca o matrice.

Sintaxă:

Stat matrice (șir $nume fișier)

Această matrice conține întotdeauna următoarele elemente cu cheile specificate:

0 - dispozitiv;
1 - Numărul nodului inodul;
2 - atribute de protecție a fișierelor;
3 - numărul de sinonime (legături „hard”) ale fișierului;
4 - uid proprietar;
5 - identificator gid de grup;
6 - tipul dispozitivului;
7 - dimensiunea fișierului în octeți;
8 - timpul ultimului acces în secunde de la 1 ianuarie 1970;
9 - ora ultimei modificări a conținutului fișierului;
10 - ora ultimei modificări a atributelor fișierului;
11 - dimensiunea blocului;
12 - numărul blocurilor ocupate;

Această matrice conține informații care sunt disponibile pe sistemele Unix. În Windows, multe câmpuri pot fi goale.

Dacă $filename specifică nu un nume de fișier, ci numele unui link simbolic, atunci informațiile despre fișierul la care se referă acest link (și nu despre link) vor fi în continuare returnate.

fileinode()

Obțineți numărul inodului fișierului (PHP 3, PHP 4, PHP 5)

Descriere:

Int fileinode (nume fișier șir)

Funcția returnează numărul inodul al fișierului sau FALSE dacă apare o eroare.

Comentariu

proprietar de fișier()

Obțineți ID-ul proprietarului fișierului (PHP 3, PHP 4, PHP 5)

Descriere:

Proprietar fișier int (nume fișier șir)

Funcția returnează ID-ul numeric al proprietarului fișierului specificat sau FALSE dacă apare o eroare. Pentru a obține numele proprietarului ca șir, utilizați funcția posix_getpwuid().

Comentariu: Rezultatele acestei funcții sunt stocate în cache. Consultați clearstatcache() pentru mai multe informații.

Începând cu PHP 5.0.0, această caracteristică poate fi utilizată și cu unele pachete de adrese URL.

fileperms()

Obțineți informații despre permisiunile fișierelor (PHP 3, PHP 4, PHP 5)

Descriere:

Int fileperms (nume fișier șir)

Funcția returnează informații despre permisiunile fișierului specificat sau FALSE dacă apare o eroare.

Comentariu: Rezultatele acestei funcții sunt stocate în cache. Consultați clearstatcache() pentru mai multe informații.

Începând cu PHP 5.0.0, această caracteristică poate fi utilizată și cu unele pachete de adrese URL. Pentru o listă de pachete acceptate de familia de funcții stat(), consultați Anexa. M.

Afișarea permisiunilor în notație octală

echo substr(sprintf("%o", fileperms("/tmp")), -4);
echo substr(sprintf("%o", fileperms("/etc/passwd")), -4);
?>

Aceasta va scoate:

1777
0644

Afișarea informațiilor complete despre drepturi

$perms = fileperms("/etc/passwd");

dacă (($perms & 0xC000) == 0xC000) (
// Priză
$info = "s";
) elseif (($perms & 0xA000) == 0xA000) (
// Legătură simbolică
$info = "l";
) elseif (($perms & 0x8000) == 0x8000) (
// Obișnuit
$info = "-";
) elseif (($perms & 0x6000) == 0x6000) (
// Bloc special
$info = "b";
) elseif (($perms & 0x4000) == 0x4000) (
// Director
$info = "d";
) elseif (($perms & 0x2000) == 0x2000) (
// Caracter special
$info = "c";
) elseif (($perms & 0x1000) == 0x1000) (
// Flux FIFO
$info = "p";
) altfel (
// Necunoscut
$info = "u";
}

// Proprietar
$info .= (($perms & 0x0100) ? "r" : "-");
$info .= (($perms & 0x0080) ? "w" : "-");
$info .= (($perms & 0x0040) ?
(($perms & 0x0800) ? "s" : "x"):
(($perms & 0x0800) ? "S" : "-"));

// Grup
$info .= (($perms & 0x0020) ? "r" : "-");
$info .= (($perms & 0x0010) ? "w" : "-");
$info .= (($perms & 0x0008) ?
(($perms & 0x0400) ? "s" : "x"):
(($perms & 0x0400) ? "S" : "-"));

// Lumea
$info .= (($perms & 0x0004) ? "r" : "-");
$info .= (($perms & 0x0002) ? "w" : "-");
$info .= (($perms & 0x0001) ?
(($perms & 0x0200) ? "t" : "x"):
(($perms & 0x0200) ? "T" : "-"));

echo $info;
?>

Rezultat:

R--r--r--

fnmatch()

Numele fișierului se potrivește cu modelul (PHP 4 >= 4.3.0, PHP 5)

Descriere:

Bool fnmatch (model de șir, șir de caractere [, steaguri int])

fnmatch() verifică dacă parametrul șir transmis se potrivește cu modelul wildcard shell specificat.

Această funcție este utilă atunci când lucrați cu nume de fișiere, deși poate fi folosită și pe un șir obișnuit. Utilizatorul obișnuit este familiarizat cu substituțiile shell, cel puțin în cea mai simplă formă de substituții „?”. și „*”, deci folosirea fnmatch() în loc de ereg() sau preg_match() pentru a căuta front-end-ul site-ului poate fi mult mai convenabilă pentru utilizatorii care nu sunt familiarizați cu expresiile regulate.

Verifică dacă culoarea se potrivește cu modelul wildcard shell.

if (fnmatch("*gry", $culoare)) (
ecou „o formă de gri...”;
}
?>

Această caracteristică nu este disponibilă în prezent pe Windows și alte sisteme care nu sunt compatibile cu POSIX.

Obține informații despre un fișier folosind indicatorul de fișier deschis (PHP 4, PHP 5)

Descriere:

Matrice fstat (mâner de resurse)

Colectează informații statistice despre fișierul deschis folosind mânerul de fișier. Această funcție este similară cu stat(), cu excepția faptului că operează mai degrabă pe indicatorul fișierului deschis decât pe numele fișierului.

Returnează o matrice cu informații statistice pentru fișier; Formatul matricei este descris în detaliu pe pagina de descriere a funcției stat().

Exemplu de utilizare a funcției fstat().

// deschide fișierul
$fp = fopen("/etc/passwd", "r");

// colectează statistici
$fstat = fstat($fp);

// închide fișierul
fclose($fp);

// afișează doar partea asociativă
print_r(array_slice($fstat, 13));

Rezultatul rulării acestui exemplu va fi cam așa:

Matrice
=> 771
=> 488704
=> 33188
=> 1
=> 0
=> 0
=> 0
=> 1114
=> 1061067181
=> 1056136526
=> 1056136526
=> 4096
=> 8
)

Comentariu: Această caracteristică nu este aplicabilă lucrului cu fișiere de la distanță deoarece fișierul trebuie să fie accesibil prin sistemul de fișiere al serverului.

is_writable()

Stabilește dacă un fișier poate fi scris (PHP 4, PHP 5)

Descriere:

Bool is_writable(string filename)

Returnează TRUE dacă fișierul nume de fișier există și poate fi scris. Argumentul nume de fișier poate fi numele unui director, permițându-vă să verificați dacă directoarele sunt inscriptibile.

Nu uitați că PHP poate accesa fișierul ca utilizator care rulează serverul web (de obicei „nimeni”). Restricțiile Safe Mode nu sunt luate în considerare.

Comentariu: Rezultatele acestei funcții sunt stocate în cache. Consultați clearstatcache() pentru mai multe informații.

Începând cu PHP 5.0.0, această funcție poate fi folosită și cu unele pachete de adrese URL

Obține informații despre un fișier sau un link simbolic (PHP 3 >= 3.0.4, PHP 4, PHP 5)

Descriere:

Matrice lstat (nume fișier șir)

Colectează statistici despre un fișier sau un link simbolic numit nume fișier. Această funcție este identică cu funcția stat(), cu excepția faptului că, dacă numele fișierului este o legătură simbolică, starea legăturii simbolice este returnată mai degrabă decât fișierul către care indică.

Consultați pagina de manual a funcției stat() pentru informații despre structura matricei pe care o returnează lstat().

Comentariu: Rezultatele acestei funcții sunt stocate în cache. Consultați clearstatcache() pentru mai multe informații.

Începând cu PHP 5.0.0, această caracteristică poate fi utilizată și cu unele pachete de adrese URL.

fileatime

Returnează data la care a fost accesat ultima dată fișierul.

Sintaxă:

Int fileatime (nume fișier șir)

Dacă fișierul nu este găsit, returnează false.

Atributul de timp al ultimului acces al fișierului se modifică de fiecare dată când datele fișierului sunt citite. Deoarece acest lucru reduce foarte mult performanța atunci când se lucrează intens cu fișiere și directoare, schimbarea acestui atribut este adesea blocată în sistemele de operare, iar apoi funcția este inutilă.

filetime

Returnează ora la care fișierul a fost modificat ultima dată sau fals dacă fișierul nu există.

Sintaxă:

Int filemtime(șir $filename)

filecttime

Returnează ora de creare a fișierului.

Sintaxă:

Int filecttime(șir $filename)

dimensiunea fișierelor

Returnează dimensiunea fișierului în octeți sau false dacă fișierul nu există.

Sintaxă:

Int dimensiunea fișierului (șir $filename)

Setează ora de modificare.

Sintaxă:

Int touch(șir $filename [, int $timestamp])

Setează ora de modificare a fișierului specificat $filename la $timestamp (în secunde de la 1 ianuarie 1970).

Dacă al doilea parametru nu este specificat, atunci se presupune ora curentă. În caz de eroare, returnează false.

Dacă un fișier cu numele specificat nu există, acesta este creat gol.

Schimbă modul de acces al unui fișier sau director (PHP3, PHP4, PHP5)

Descriere:

Bool chmod (nume fișier șir, modul int)

Încercările de a schimba modul de acces al unui fișier sau director transmis în parametrul nume fișier în modul trecut în parametrul mode.

Rețineți că valoarea parametrului mod nu este convertită automat în octal, astfel încât șirurile de caractere (cum ar fi „g+w”) nu vor funcționa așa cum era de așteptat. Pentru a vă asigura că modul a fost setat corect, precedeți valoarea transmisă în parametrul mod cu un zero (0):

chmod("/somedir/somefile", 755); // zecimală, mod greșit
chmod("/somedir/somefile", "u+rwx,go+rx"); // șir, metodă greșită
chmod("/somedir/somefile", 0755); // octal, modul corect
?>

Valoarea parametrului mode este formată din trei numere octale care determină nivelul de acces pentru proprietarul fișierului, pentru grupul căruia îi aparține proprietarul și, respectiv, pentru alți utilizatori. Numărul care definește nivelul utilizatorului poate fi calculat prin însumarea valorilor care definesc drepturile:

1 - acces la execuție,
2 - acces la scriere,
4 - acces la citire.

Puteți afla mai multe despre sistemul de drepturi în sistemele Unix folosind comenzile „man 1 chmod” și „man 2 chmod”.

//Acces de scriere și citire pentru proprietar, fără acces pentru alții
chmod("/somedir/somefile", 0600);
// Acces de scriere și citire pentru proprietar, acces de citire pentru alții
chmod("/somedir/somefile", 0644);
// Acces complet pentru proprietar, acces de citire și executare pentru alții
chmod("/somedir/somefile", 0755);
// Acces complet pentru proprietar, acces de citire și execuție pentru grupul de proprietari
chmod("/somedir/somefile", 0750);
?>

Returnează TRUE la succes sau FALSE la eroare.

Notă: utilizatorul actual este utilizatorul sub care rulează PHP. Este posibil ca acest utilizator să fie diferit de utilizatorul pe care îl utilizați pentru a vă accesa shell-ul de comandă sau contul FTP.

Notă: Această caracteristică nu este aplicabilă lucrului cu fișiere de la distanță, deoarece fișierul trebuie să fie accesibil prin sistemul de fișiere al serverului.

Notă: Când modul sigur este activat, PHP verifică dacă fișierul sau directorul la care lucrați are același UID ca și scriptul care se execută. În plus, nu puteți seta SUID, SGID sau biți sticky.

(PHP 3, PHP 4, PHP 5)

stat- Obține informații despre fișier

Descriere

matrice stat(nume fișier șir)

Colectează informații statistice despre numele fișierului. Dacă numele fișierului este o legătură simbolică, informațiile sunt colectate despre fișierul în sine, nu despre legătură. Funcţie lstat() identic cu functia stat() cu excepția faptului că în acest caz va returna informații despre legătura simbolică în sine.

În caz de eroare, stat() va reveni FALS. De asemenea, va emite un avertisment.

Returnează o serie de informații statistice despre fișier. Matricea include următoarele elemente. Indexarea începe de la zero. De asemenea, accesul la orice atribut se poate obține folosind cheia asociativă, care este indicată vizavi de fiecare parametru; această caracteristică a apărut începând cu PHP 4.0.6:

Tabelul 1. Formatul rezultatelor funcției stat()Şi fstat()

* - disponibil numai pe sistemele care acceptă tipul st_blksiize, alte sisteme (de exemplu Windows) vor returna -1.

Cheie:Începând cu PHP 5.0.0, această caracteristică poate fi utilizată și cu unele pachete de adrese URL. Lista de pachete acceptate de familia de caracteristici stat(), uită-te în