Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ

Informacion i keq php. Shërbimi i skedarëve në mënyrë efikase duke përdorur PHP

Ky funksion shfaq një tabelë që përmban shumë informacione të dobishme në lidhje me cilësimet e php, modulet e instaluara, konfigurimin e serverit lokal, variablat e mjedisit, versionin e OS, shtigjet, titujt HTTP, licencën PHP, etj.

Funksioni phpinfo përdoret kur kontrolloni sistemin, pasi çdo server në rrjet ka cilësimet e veta unike. Nëse skripti funksionoi mirë në një server dhe ndaloi së punuari në një tjetër, atëherë duhet të kontrolloni cilësimet e konfigurimit të serverit të ri duke përdorur këtë funksion.

Mënyra më e lehtë për të përdorur këtë funksion është krijimi i një skedari të veçantë:

Do të shfaqë një faqe si kjo:

Figura 1. Funksionimi i funksionit phpinfo ().

Dhe informacioni ka ende rreth katër ekrane poshtë.

phpinfo është një funksion që shfaq informacion të plotë në lidhje me konfigurimin aktual të PHP.

Funksioni phpinfo PHP
Emri (konstant)Kuptimi Përshkrim
INFO_TË PËRGJITHSHME 1 Informacione të përgjithshme për konfigurimin, vendndodhjen e php.ini, informacionin e serverit në internet, informacionin e sistemit, etj.
INFO_KREDITË 2 Informacion rreth zhvilluesve të PHP. Mund të merret gjithashtu duke përdorur funksionin phpcredits ().
INFO_CONFIGURATION 4 Informacion në lidhje me vlerat aktuale të direktivave kryesore dhe lokale të PHP. Ato gjithashtu mund të merren duke përdorur funksionin ini_get ().
INFO_MODULE 8 Modulet e ngarkuara dhe cilësimet e tyre. Shihni gjithashtu get_loaded_extensions ().
INFO_MJEDISI 16 Informacion mbi variablin e mjedisit, i cili është gjithashtu i disponueshëm në $ _ENV.
INFO_VARIABLES 32 Nxjerrë të gjitha variablat e paracaktuara nga EGPCS (Mjedisi, GET, POST, Cookie, Server).
INFO_LICENSE 64 Informacioni i licencës PHP.
INFO_ALL -1 Nxjerr të gjitha sa më sipër.

Mund të shihni që funksioni phpinfo përmban të dhëna EGPCS, kështu që mund të përdoret për qëllime korrigjimi.

Vlerat janë vlera bit, kështu që përdoren numrat 2, 4, 8, 16, 32 dhe 64.

Shembuj të përdorimit të phpinfo () me argumente:

Informacioni i dhënë nga funksioni phpinfo () mund të përdoret nga ndërhyrës për të dëmtuar faqen tuaj. Prandaj, skedarët me këtë funksion duhet të fshihen.

Në vitin 2010, burimi i njohur rus për programuesit Habrahabr publikoi një artikull që përmban të dhëna nga një studim shumë interesant. Doli se 4.69% e faqeve ruse përmbajnë një skedar phpinfo.php me një funksion phpinfo. Në atë kohë, Runet përbëhej nga 36804 sajte, 1725 kishin një cenueshmëri të mundshme.

Nëse thjesht duhet të zbuloni se cili version i PHP është në server, mund të përdorni funksionin phpversion.

Çdo softuer që dëshironi të ekzekutoni në serverin tuaj të internetit ka disa kërkesa që duhet të plotësojë. Për shembull, WordPress kërkon versionin PHP 5.2.4 ose më të lartë. Në varësi të serverit, mund të ndryshoni disa cilësime PHP, të tjerët, përkundrazi, nuk mund të ndryshohen, megjithatë, mund të merrni informacione për të gjitha ato në skedarin phpinfo. Në këtë tutorial, do të mësoni se si të krijoni një skedar phpinfo dhe të zbuloni vlerat dhe statusin e moduleve PHP. Mund të jetë gjithashtu i dobishëm për marrjen e informacionit në lidhje me llogarinë tuaj të pritjes si max_execution_time, memory_limit, post_max_size dhe të tjera.

Përpara se të filloni këtë tutorial, ju nevojiten sa më poshtë:

  • Qasja në panelin tuaj të kontrollit të pritjes ose llogarinë FTP

Opsioni 1 - Kontrollimi i informacionit PHP përmes Panelit të Kontrollit të Hosting

Në Hostinger, informacioni PHP i llogarisë suaj mund të gjendet nën I avancuar -> Informacioni PHP... Ky është një veçori shumë e përshtatshme, pasi nuk do t'ju duhet të krijoni skedarë shtesë në hostin tuaj.

Pas kësaj, do të çoheni në një faqe me të gjithë informacionin e nevojshëm në lidhje me versionin, modulet dhe vlerat tuaja PHP. Për të kërkuar për një modul ose funksion specifik, përdorni kërkimin duke shtypur shkurtoren e tastierës CTRL + F.

urime! Ju mësuat se si të përdorni informacionin tuaj php përmes panelit të kontrollit të Hostinger.

Opsioni 2 - Kontrolloni informacionin PHP duke krijuar një skedar phpinfo.php

Mos u shqetësoni nëse platforma juaj e pritjes nuk e mbështet funksionin e treguar opsioni 1... I njëjti rezultat mund të arrihet duke krijuar një skedar të veçantë brenda llogarisë suaj të pritjes. Skedari do të tregojë gjithashtu të gjitha informacionet në lidhje me PHP-në tuaj dhe do të jetë i aksesueshëm përmes shfletuesit.

Hapi 2.1 - Krijimi i skedarit phpinfo

Ka disa mënyra për të krijuar skedarin phpinfo. Në këtë tutorial, ne do të përdorim. Megjithatë, i njëjti rezultat mund të arrihet duke krijuar një skedar në kompjuterin tuaj lokal dhe më pas duke ngarkuar skedarin në server nëpërmjet.

Hyni në panelin e kontrollit të pritjes dhe hapeni Menaxheri i skedarëve... Klikoni butonin Skedar i ri për të krijuar një skedar të ri.

Në fushën e parë, specifikoni rrugën ku do të krijohet skedari i ri. Më tej, në terren Emri i ri i skedarit hyjnë phpinfo.php... Në shumicën e rasteve, ju mund ta lini rrugën e pandryshuar / public_html... Në këtë rast, skedari do të krijohet në direktorinë rrënjë të faqes tuaj.

Hapi 2.2 - Redaktimi i skedarit

Në këtë pikë, ju tashmë keni një skedar bosh phpinfo.php në katalog public_html... Kopjoni kodin e mëposhtëm në një skedar dhe klikoni ikonën Ruaj në këndin e majtë të ekranit.

Kjo është e gjitha, ju keni krijuar me sukses një skedar PHP që do të shfaqë të gjitha opsionet tuaja PHP. Siç u përmend më herët, i njëjti rezultat mund të arrihet me:

  1. Përdorni çdo redaktues teksti dhe krijoni një skedar phpinfo.php në kompjuterin tuaj.
  2. Shtoni kodin e mëposhtëm në skedar:
  1. Ngarkoni skedarin duke përdorur FTP në drejtorinë tuaj public_html.

Hapi 2.3 - Kontrollimi i informacionit PHP përmes shfletuesit

Nëse gjithçka është bërë si duhet, tani mund të hyni në skedarin e krijuar duke shtuar në fund të emrit të domenit tuaj / fqhpinfo.php... Për shembull, http://yourdomain.ru/phpinfo.php

Ju duhet të shihni një rezultat të ngjashëm kur hapni këtë faqe përmes një shfletuesi:

Në këtë faqe do të mund të shihni të gjitha cilësimet tuaja të PHP.

konkluzioni

Pas përfundimit të këtij tutoriali, ju keni mësuar se si të krijoni një skedar phpinfo dhe të kontrolloni informacionin e cilësimeve tuaja PHP. Ky informacion është i dobishëm nëse doni të dini cilësimet tuaja të pritjes ose të ekzekutoni softuer që kërkon module të caktuara PHP.

(PHP 3, PHP 4, PHP 5)

phpinfo - Printon shumë informacione rreth PHP.

Përshkrim

int phpinfo ()

Printon shumë informacione rreth statusit aktual të PHP. Kjo përfshin informacion në lidhje me opsionet dhe shtesat e përpilimit të PHP, versionin PHP, informacionin e serverit dhe mjedisit (nëse përpilohet si modul), mjedisin PHP, versionin e OS, shtigjet, variablat kryesore dhe lokale të opsioneve të konfigurimit, titujt HTTP dhe licencën PHP. Meqenëse çdo sistem është i konfiguruar ndryshe, phpinfo () zakonisht përdoret për të kontrolluar cilësimet e konfigurimit dhe disponueshmërinë e variablave të paracaktuar në një sistem të caktuar. Phpinfo () është gjithashtu një mjet i rëndësishëm korrigjimi pasi përmban të gjitha të dhënat EGPCS (Mjedisi, GET, POST , Cookie, Server). Një dalje mund të specializohet duke kaluar një ose më shumë nga sa vijon konstante vlerat e bitit përmblidhen në parametrin opsional çfarë. Ju gjithashtu mund të kombinoni vlerat përkatëse konstante ose bit me një operacion.

Tabela 1. Opsionet phpinfo ().
Emri (konstante) Vlera Përshkrimi INFO_GENERAL1 Vargu i konfigurimit, vendndodhja php.ini, data e ndërtimit/ndërtimit, serveri në internet, sistemi, etj. INFO_CREDITS2 PHP 4 Kredite. Shihni gjithashtu phpcredits () .INFO_CONFIGURATION4 Vlerat aktuale lokale dhe kryesore të direktivave php. Shihni gjithashtu ini_get () .INFO_MODULES8 Modulet e ngarkuara dhe cilësimet e tyre përkatëse INFO_ENVIRONMENT16Mjedisi Informacioni i variablit disponohet gjithashtu në $ _ENV .INFO_VARIABLES32 Tregon të gjitha variablat e paracaktuar nga EGPCS (Mjedisi, GETSE, Licenca, POST_LI, ENV. Shihni gjithashtu faqen e licencës .INFO_ALL-1 Të gjitha sa më sipër. Ky është parazgjedhja.

Shënim: pjesë të informacionit të shfaqur çaktivizohen kur cilësimi i konfigurimit expose_php është i çaktivizuar. Kjo përfshin logot dhe kreditet PHP dhe Zend. gjithashtu

Nëse keni nevojë të shërbeni skedarë jo drejtpërdrejt nga serveri në internet, por duke përdorur PHP (për shembull, për të mbledhur statistikat e shkarkimit), ju lutemi, nën cat.

1. Përdorimi i skedarit të leximit ()

Metoda është e mirë sepse funksionon nga kutia. Thjesht duhet të shkruani funksionin tuaj për dërgimin e një skedari (një shembull pak i modifikuar nga dokumentacioni zyrtar):

Funksioni file_force_download (skedar $) (nëse (skedari_ekziston (skedari $)) (// shpëlajeni buferin e daljes PHP për të shmangur tejmbushjen e memories së caktuar për skriptin // nëse kjo nuk është bërë, skedari do të lexohet plotësisht në memorie! Nëse ( ob_get_level ()) ( ob_end_clean ();) // detyroj shfletuesin të shfaqë kokën e dritares së ruajtjes së skedarit ("Përshkrimi i përmbajtjes: Transferimi i skedarit"); titulli ("Lloji i përmbajtjes: aplikacioni / oktet-stream"); header ("Content-Disposition: bashkëngjitje; emri i skedarit = ". emri bazë ($ skedar)); titulli ("Content-Transfer-Encoding: binary"); header (" Skadon: 0 "); header (" Cache-Control: duhet -rivlerëso "); kokën (" Pragma: publike"); kokën (" Gjatësia e përmbajtjes: ". madhësia e skedarit (skedari $)); // lexoni skedarin dhe dërgojeni te skedari i lexuar i përdoruesit (skedari $); dilni;) )
Edhe skedarët e mëdhenj mund të dërgohen në këtë mënyrë, pasi PHP do ta lexojë skedarin dhe do t'ia japë menjëherë përdoruesit në pjesë. Dokumentacioni thekson qartë se skedari i lexuar () nuk duhet krijojnë probleme me kujtesën.

Veçoritë:

  • Skedari lexohet në buferin e brendshëm të funksionit readfile (), i cili është në madhësi 8 kB (falë 2fast4rabbit)

2. Ne lexojmë dhe dërgojmë skedarin me dorë

Metoda përdor të njëjtin Drupal kur dërgon skedarë nga një sistem skedarësh privat (skedarët nuk janë të aksesueshëm drejtpërdrejt përmes lidhjeve):

Funksioni file_force_download (skedar $) (nëse (skedari_ekziston (skedari $)) (// shpëlajeni buferin e daljes PHP për të shmangur tejmbushjen e memories së caktuar për skriptin // nëse kjo nuk është bërë, skedari do të lexohet plotësisht në memorie! Nëse ( ob_get_level ()) ( ob_end_clean ();) // detyroj shfletuesin të shfaqë kokën e dritares së ruajtjes së skedarit ("Përshkrimi i përmbajtjes: Transferimi i skedarit"); titulli ("Lloji i përmbajtjes: aplikacioni / oktet-stream"); header ("Content-Disposition: bashkëngjitje; emri i skedarit = ". emri bazë ($ skedar)); titulli ("Content-Transfer-Encoding: binary"); header (" Skadon: 0 "); header (" Cache-Control: duhet -revalidate "); header (" Pragma: publike "); header ("Content-Length: ". file size ($ file)); // lexoni skedarin dhe dërgojini përdoruesit nëse ($ fd = fopen ($ file ," rb ")) (ndërsa (! feof ($ fd)) (print fread ($ fd, 1024);) fclose ($ fd);) dalje;))
Veçoritë:

  • Skripti pret derisa i gjithë skedari të lexohet dhe t'i kthehet përdoruesit.
  • Ruan kujtesën e serverit

3. Ne përdorim modulin e ueb serverit

3a. Apache
Moduli XSendFile lejon Apache të dërgojë ngarkimin e skedarit duke përdorur një kokë të veçantë. Ka versione për Unix dhe Windows, nën versionin 2.0. *, 2.2. * Dhe 2.4. *

Në cilësimet e hostit, duhet të aktivizoni përgjimin e kokës duke përdorur direktivën:
XSendFile Aktiv
Ju gjithashtu mund të listoni direktoritë ku skedarët mund të përpunohen. E rëndësishme: nëse keni një server të bazuar në Windows, shtegu duhet të përfshijë një shkronjë të madhe të diskut.

Përshkrimi i opsioneve të mundshme në faqen e internetit të zhvilluesit: https://tn123.org/mod_xsendfile/

Shembull i dërgimit të një skedari:

Funksioni file_force_download (skedar $) (nëse (skedari_ekziston (skedari $)) (titulli ("X-SendFile:". Realpath (skedar $)); titulli ("Lloji i përmbajtjes: aplikacioni / transmetimi oktet"); (" Përmbajtja-Disposition: bashkëngjitja; emri i skedarit = ". Emri bazë ($ skedari)); dalje;))

3b. Nginx
Nginx është në gjendje të dërgojë skedarë jashtë kutisë përmes një titulli të veçantë.

Për funksionimin e duhur, duhet të mohoni hyrjen në dosje direkt përmes skedarit të konfigurimit:
vendndodhja / e mbrojtur / (i brendshëm; rrënjë / disa / shteg;)
Një shembull i dërgimit të një skedari (skedari duhet të jetë i vendosur në drejtorinë / disa / shteg / të mbrojtur):

Funksioni file_force_download (skedar $) (nëse (skedari_ekziston (skedari $)) (titulli ("X-Accel-Redirect:". $ File); titulli ("Lloji i përmbajtjes: aplikacioni / transmetimi oktet"); "Përmbajtja -Dispozicion: bashkëngjitje; emri i skedarit = ". Emri bazë ($ skedari)); dalja;))
Më shumë informacion në faqen zyrtare të dokumentacionit

Veçoritë:

  • Skripti përfundon menjëherë pasi të jenë ekzekutuar të gjitha udhëzimet
  • Fizikisht, skedari dërgohet nga moduli i vetë serverit në internet, jo nga PHP
  • Konsumi minimal i memories dhe burimeve të serverit
  • Performanca maksimale

Përditëso: Habrayuser ilyaplot jep këshilla të mira që është më mirë të mos dërgoni aplikacionin / oktet-stream, por llojin e vërtetë të mimës së skedarit. Për shembull, kjo do të lejojë shfletuesin të zëvendësojë programet e dëshiruara në dialogun e skedarit të ruajtjes.

Artikujt kryesorë të lidhur