ArvutidFailitüübid

PHP: PHP-faili lugemine. PHP-failide kasutamine: lugemine, kirjutamine ja soovitused

PHP ilmus palju hiljem, kui programmeerimiskeeled tugevdasid oma positsioone, sõnastasid üldised mõisted süntaksi, loogika, muutujate ja muude programmide objektide kohta. Failide ja nendega töötamise funktsioonidega ei tehtud mingeid edusamme ja isegi failide kodeerimise probleem, mis tekkis looduslikel põhjustel, ei viinud kardinaalselt uusi lahendusi.

Üldised märkused

Peamine töö failidega, olenemata sellest, on see avada, lugeda / kirjutada ja sulgeda. Saate lüüa / avada funktsiooni, et seda faili töötlemise ajal juurde pääseda, saate määrata lugemis- / kirjutamisasendi failis - kõik, nagu ka varem, kauges minevikus.

PHP-i tähtsus on faile töötamise funktsioonide ületamine ja nende kasutamise võimalused. Praktikas piisab lihtsatest, kuid töötavatest variantidest. Fail on kõigepealt programmimälu. See võib salvestada teavet. Mis tahes programmi eesmärk, mis tahes saidi eesmärk - esindada, töödelda ja tagada teabe turvalisus.

Oluline asjaolu

Varem oli ühilduvuse nõue vähemalt allapoole ülespoole tühine. See tähendab, et kui ükskõik milline on kirjutatud programmeerimiskeele ühe versiooni programm on ideaaljuhul koostatud / tõlgendatud järgmises versioonis. Kaasaegses programmis ei ole see nii. Keelte süntaktiliste konstruktsioonide kokkusobivuse nõue on ajaloos vähenenud ning nende või teiste vahendite kavandamise vahendite ja versioonide vaheline võitlus on muutunud oma elu normiks.

Failide ja andmebaasidega töötamine on oluline nii palju kui saidi liides on oluline. Esimene peaks olema üles ehitatud nii, et platvormide, hosting ja keeleversioonide vahetamisel ei pea te saidikoodi muutma. Failide liides peaks olema eraldi skript, mis peab tagama täieliku ühilduvuse, samuti peab saidi disain olema kohandatud igale seadmele, brauserile ja võimaldama saidi muudele funktsioonidele samad võimalused.

Loe ja vahetage endale

Kas programm võib ise muuta, st kas skripti saab parandada? Praeguseks on see küsimus paljude jaoks huvipakkuv. Kuid ülesanne on palju praktilisem: PHP loeb PHP-faili. Arendaja ei saa alati seda või seda ülesannet lahendada, kirjutades konkreetse koodi. Mõnikord on seda vaja muuta, kui külastaja sai saidile ja sõnastas küsimuse, mida arendusetapis pole ette nähtud.

Nagu kõigil teistel juhtudel, peate kõigepealt faili avama. Ei ole oluline, kas see fail on olemas või mitte. Kui teate, et fail on olemas (faili existences () funktsioon annab positiivse vastuse) kasutage funktsiooni fopen (), millele on juurdepääs "r", "r +", "a", "a +". Kui faili pole veel, siis on juurdepääs "a", "a +", "w", "w +". Faili avamise tulemus on selle deskriptor. Fail on suletud fclose ().

On mugav kasutada PHP lugemist faili array, kui ei ole vaja seda töödelda lugemise ajal.

Kui (file_exists ($ fName)) {

$ ALines = fail ($ fName)

}

Sellisel juhul siseneb faili iga rida massiivi elemendi järjestikku. Tuleb märkida, et faili () või file_get_contents () funktsioonid ei pea faili avama ja sulgema.

Kui sisendfail on liiga suur ja peate leidma pisut infot või muudel põhjustel, võite kasutada PHP-faili lugemise rea järgi. PHP võimaldab seda teha fgets () ja fgetc () funktsioonidega.

$ CLines = ''

$ Fvs = fopen ($ fName, r)

$ I = 0

Kuigi ((vale! == ($ cLine = fgets ($ fvs, 2000))))) {

$ I ++

$ CLines. = '
'. $ I. ") " $ CLine

}

Fclose ($ fvs)

Mõlemad võimalused toimivad veatult. Kuid PHP-failide lugemisel hilisemate muudatuste jaoks PHP-failis peate järgima ettevaatusabinõusid. Külastuse veebisaidi arendamise etapis ei ole alati võimalik pakkuda selle kasutamise viise. Parem on, kui skriptide muutmine toimub saidi funktsioonide piires ja selle muudatuse haldamine ei ole külastaja jaoks kättesaadav, sealhulgas ressursi administraator.

Tulemuste salvestamine

Saadud ja ajakohastatud teave kirjutatakse failile fputs () funktsiooni rea järgi või funktsiooni file_put_contents () abil täielikult.

$ FName = $ _SERVER ['DOCUMENT_ROOT']. '/ Tmp / scData.php'

$ Fvs = fopen ($ fName, 'a')

Flok ($ fvs, LOCK_EX)

$ CLine = '1 rida'. Chr (10)

Fputs ($ fvs, $ cLine)

$ CLine = '2 rida'. Chr (10)

Fputs ($ fvs, $ cLine)

Fflush ($ fvs)

Flok ($ fvs, LOCK_UN)

Fclose ($ fvs)

Rea järjestikuses versioonis võite andmeid kirjutamise käigus manipuleerida, teisel juhul kirjutav string või massiiv asetatakse faili tervikuna.

$ File = 'scData.php'

$ CContents = file_get_contents ($ fail)

// rekordi lisamine

$ CContents. = "Uus sissekanne \ n"

// kirjuta fail tagasi

File_put_contents ($ file, $ cContents)

PHP-failide lugemine ja kirjutamine on lihtne ja loomulik. Siiski on oluline meeles pidada, et igal failil on nimi, laiendus ja tee (kaust). Selleks, et PHP-skript saaks lugeda ja kirjutada faile, peab sellel skriptil olema vajalikud õigused. Need paigutatakse automaatselt majutusele, kuid mõnel juhul tuleb neid laiendada.

Mõnel juhul on soovitav kontrollida tulemusi testimiseks. PHP-failide kirjutamine nõuab seda arendusetapis, kuid mõnel juhul on turvalisuse või saidi usaldusväärsuse huvides oluline andmesisestuse kontrollimine.

PHP, MySQL, JavaScript ja eriti brauserite tunnusjoonis on vaikimisi mõned vead. "Seda ei tunnustatud, seda ei juhtunud ..." - ei ole infotehnoloogia esirinnas hea tava, kuid see õpetab arendajatel tegema õiget ja kirjutama puhast, kvaliteedikoodi, mis pole ka halb.

PHP ja töötamine tõeliste dokumentidega

PHP-faili lugemine PHP-failis on kindlasti praktilisest huvist, kuid see on programmiala. Saidide kasutaja ja külastaja on huvitatud rakendusliku iseloomuga teabest, mida ta on tavapäraselt näinud tabelite ja dokumentide kujul, eelkõige vormides * .xlsx ja * .docx-failid. Need failid asuvad MS Excelis ja MS Wordis.

Kaupade loendid, hinnad, omadused on üldiselt kujundatud tabelite kujul, seega on PHP lugemine Exceli failis oluline.

Selliste failidega töötamiseks on välja töötatud PHPExcel ja PHPWordi raamatukogud. Siiski on * .xlsx ja * .docx-failide sisu esindatud OOXML-standardis, see tähendab, et tegelikku dokumenti, mis on arusaadav, on zip-arhiiv. Zip-arhiiv on failide kogum, sealhulgas pildid, objektid, valemid, lisad teistest programmidest. Siin olevad tekstifailid on kujutatud siltide kujul. Sellise faili lugemiseks on väike, peate selle analüüsima, et sisu ja struktuuri kasutada ja muuta.

See tähendab, et lugemisoperatsioon muutub arhiivi avamise protseduuriks. Need raamatukogud avavad dokumendi arhiivi ise ja annavad arendajale ulatuslikke funktsioone selliste dokumentide lugemiseks, töötlemiseks ja salvestamiseks.

Exceli tabelid

Exceli arvutustabeli lugemiseks piisab sellest, kui teada saada selle faili nimi ja selle tee ($ xls). Järgmise koodi täitmise tulemusena genereeritakse algse Exceli tabeli väärtuste massiiv:

Include_once 'PhpOffice / PhpExcel / IOFactory.php'

Funktsioon scGetExcelFile ($ xls) {

$ ObjPHPExcel = PHPExcel_IOFactory :: koormus ($ xls)

$ ObjPHPExcel-> setActiveSheetIndex (0)

// see massiiv sisaldab stringide massiive

$ ASheet = $ objPHPExcel-> getActiveSheet ()

$ Array = array ()

// töötlemine

Foreach ($ aSheet-> getRowIterator () kui $ row) {

$ CellIterator = $ rida-> getCellIterator ()

$ Item = massiiv ()

Foreach ($ cellIterator kui $ cell) {

Array_push ($ item, iconv ('utf-8', 'cp1251', $ cell-> getCalculatedValue ()))

}

Array_push ($ array, $ item)

}

Tagasi $ array

}

Exceli failide lugemine ja töötlemine on palju keerulisem kui Wordi dokumentide töötlemine. Parim variant, kui peate rakendusteabe lugemiseks ja töötlemiseks tõsise projekti rakendama, on kõigepealt PHPWordi teegi kapten. See annab hea kogemuse ja probleemi eripära kiire sissekande.

Wordi dokumendid

Ainult kaks rida:

$ OWord = uus \ PhpOffice \ PhpWord \ PhpWord ()

$ ODocx = $ this-> oWord-> loadTemplate ($ cFileName)

Nüüd on $ cFileName dokument töötlemiseks saadaval. Seejärel avab arhiivi, valib ja analüüsib selle sisu, mida saab saidil kuvada, muuta ja tagasi kirjutada.

$ ZipClass = uus ZipArchive ()

$ ZipClass-> avatud ($ this-> tempFileName)

// loe kogu dokumendi sisu

For ($ i = 0; $ i <$ zipClass-> numFiles; $ i ++) {

$ CNameIn = $ zipClass-> getNameIndex ($ i)

$ CNameInExt = substr ($ cNameIn, -4)

Kui (($ cNameInExt == '.xml') || ($ cNameInExt == 'rels')) {

// failid laienditega '.xml' ja '.xml.rels' salvestatakse dokumentide tabelisse

// iga xml-rida on kirjutatud kordumatu numbriga järjekorras

$ CBodyIn = $ zipClass-> getFromName ($ cNameIn)

$ CBodyInLen = strlen ($ cBodyIn)

} Else {

/ / Kõik muud failid on kirjutatud dokumendi kausta nagu see on

$ CNameOnly = substr ($ cNameIn, strrpos ($ cNameIn, '/') + 1)

$ ZipClass-> getFromName ($ cNameIn, $ cWorkPath); // sisu failina

}

Võimalused, mis avatakse PHP Exceli ja PHP-i abil, võimaldavad teil manipuleerida tõeliste dokumentidega, muuta nende sisu asjakohaseks igal ajal. Tänapäeva dünaamilises maailmas muutub see väga oluliseks. Raskuskese on juba ammu liikunud arvutitehnoloogia kohalikust kasutamisest virtuaalsele Interneti-ruumile. Seetõttu on Microsofti kohalike toodete tabelite ja dokumentide loomine vähem efektiivne kui selliste dokumentidega töötamine saidi automaatses ja poolautomaatses režiimis, mis on saadaval mitte ainult tabeli või dokumendi loojale, vaid ka selle tarbijatele.

Tekstifailid, teine elu

Esimeses lähenduses on tekstifailid lihtsamad kui PHP-failid või rakendusdokumendid. Siiski on mõtet mõelda. Selliste failide lugemise / kirjutamise toimingud on juba eespool näidatud, kuid nende failide tähendus on palju olulisem.

Kui selline on antud kui klient ja server (kõigepealt domineerib JavaScript, esimene on PHP), isegi küpsiste ja seansside mehhanismid ei lahenda vajadust edastada teavet skriptide, lehtede või muude protsesside vahel.

Võite peegeldada andmebaasis vajalike muudatuste tegemist, kuid kõik nende eelised ja kiirus võivad infovahetuseks palju huvitavamad võimalused olla väikesed ajutised või alalised tekstifailid. Kui te ei loo palju väikeseid faile ja ei kontrolli nende suurusi, võivad need olla konkreetsed ja paindlikumad andmebaasi versioonid.

Tekstifaili lugemine PHP-i on kiire, saate seda kohe analüüsida struktuuri, massiivi või objektiga. Viimane on väga oluline, sest see võimaldab teil luua PHP-skriptile eraldatud aja jooksul elavaid objekte, mis, nagu teate, võivad eksisteerida ainult serveris ja ainult siis, kui lehte laaditakse, moodustatakse AJAX-vastus või muul põhjusel, mis käivitab PHP-tõlgi.

Paljutõotavad ideed, soovitused

Kui arvate, et tekstifail on arendaja sisuks ja struktuuriks, on PHP-fail tõlgi ja arendaja loogika süntaksiks ning html, css, xml-i märgistusega kirjeldused on rohkem semantilisi elemente, kuid neid reguleerivad staatilised standardid. Võib jõuda järeldusele, et faile on tõenäoliselt aega uue sisu hankimiseks ja see peab määrama nende rakenduste kvaliteedi ja loogika. Just sellepärast, et programmeerimine ei ole veel järgmise arendusetapi jaoks valmis, jäävad failid nüüd lihtsalt failid, mida arendaja loob ja määrab nende kasutamise.

Kõige huvitavam ja paljutõotav, kui PHP-fail loeb PHP-faili ise, kui see muutub vajalikuks. Faili stringi lihtne PHP-lugemine toob kaasa objekti loomise, vähemalt selles olekus, milles see oli salvestatud. Need ei ole täpselt tavalised ideed, kuid tegelikult on tänapäeva maailmas kõik nii kiiresti muutumas.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 et.birmiss.com. Theme powered by WordPress.