PHP: PHP fájl olvasása. PHP fájlok kezelése: olvasás, írás és ajánlások
A PHP sokkal később jött, mint a nyelvekA programozás megerősítette pozícióikat, általános ötleteket fogalmazott meg a programok szintaxisáról, logikájáról, változóiról és egyéb objektumairól. A velük való együttműködéshez használt fájlok és funkciók nem haladtak előre, és még a természetes okokból felmerült fájlkódolási probléma sem hozott radikálisan új megoldásokat.
Általános megjegyzések
A fájlokkal végzett fő munka, bármilyen is legyen,a megnyitásból, az olvasásból / írásból és a bezárásból áll. A funkciók segítségével zárolhatja / feloldhatja a fájlhoz való hozzáférést annak feldolgozása során, beállíthatja az olvasási / írási pozíciót a fájlban - mindent, mint korábban, a távoli múltban.
A PHP egyik fontos pontja a funkciók feleslegedolgozzon fájlokkal és azok felhasználási lehetőségeivel. A gyakorlatban elegendő egyszerű, de működőképes lehetőségeket használni. A fájl elsősorban a program memóriája. Tárolhat információkat. Bármely program célja, bármely webhely célja az információk reprezentálása, feldolgozása és biztosítása.
Jelentős körülmény
Ez régen megrázhatatlan kompatibilitási követelmény voltlegalább alulról felfelé. Vagyis ha a programot egy programozási nyelv egyik változatában írják, akkor ideális esetben a következő verzióban fordítják le / értelmezik. A modern programozásban ez nem így van. A nyelv szintaktikai konstrukcióinak kompatibilitási követelményei elmúltak a történelemben, és a stílusok és a programozó eszközök, valamint a különféle eszközök verziói közötti küzdelem életük normává vált.
Fájlokkal, mint például az adatbázisokkal való munka fontosannyira fontos, mint a webhely felülete. Az elsőt oly módon kell felépíteni, hogy a platform, a host, a nyelvi változat megváltoztatásakor ne kelljen megváltoztatnia a webhely kódját. A fájl felületet külön szkriptbe kell helyezni, és biztosítani kell a teljes kompatibilitást, csakúgy, mint a webhely kialakítását megfelelően hozzá kell igazítani bármilyen eszközhöz, böngészőhöz, és a weboldal többi funkcióját azonos képességekkel kell biztosítani.
Olvassa el és változtassa meg magát
Megváltoztathatja-e egy program magát, vagyis meg tudja változtatni?Javul a szkript? A mai napig ez a kérdés sokat érdekel. De a feladat sokkal praktikusabbnak tűnik: PHP olvas egy PHP fájlt. A fejlesztõ nem mindig képes megoldani egy adott problémát egy specifikus kód írásával. Időnként meg kell változtatni, amikor egy látogató belépett a webhelyre, és megfogalmaz egy olyan kérdést, amelyet a fejlesztési szakaszban nem láttak el.
Mint minden más esetben, először isA fájlt meg kell nyitni. Nem számít, létezik-e ez a fájl vagy sem. Ha ismert, hogy a fájl létezik (a file_exists () függvény pozitív választ ad), akkor a fopen () függvényt használja az r ',' r + ',' a ',' a + 'eléréssel. Ha a fájl még nem létezik, akkor a 'a', 'a +', 'w', 'w +' hozzáféréssel rendelkezik. A fájl megnyitásának eredménye lesz a leíró. A fájl bezáródik az fclose () funkcióval.
A PHP segítségével kényelmesen olvashat egy fájlt tömbbe, ha az olvasás idején nincs szükség feldolgozásra.
if (fájlnév létezik ($ fName)) {
$ aLines = fájl ($ fName)
}
Ebben a kiviteli alakban a fájl minden sora egymás után a tömb elemébe esik. Meg kell jegyezni, hogy a file () vagy a file_get_contents () függvényeknek nem kell megnyitniuk és bezárniuk a fájlt.
Ha a bemeneti fájl túl nagy, de meg kell találniacsak egy kis információ, vagy egyéb okokból a PHP segítségével soronként olvashatja el a fájlt. A PHP ezt lehetővé teszi a fgets () és fgetc () függvényekkel.
$ cLines = ""
$ fvs = fopen ($ fName, "r")
$ i = 0
míg ((hamis! == ($ cLine = fgets ($ fvs, 2000)))))) {
$ i ++
$ cLines. = "<br/>". $ i. ").". $ cLine
}
fclose ($ fvs)
Mindkét lehetőség hibátlanul működik. Ha azonban a PHP-fájlt egy PHP-leolvasással hajtják végre a későbbi módosításokhoz, akkor vigyázni kell. Távolról sem mindig lehet elképzelni, hogy a látogató hogyan használja fel a webhely fejlesztési szakaszában. Sokkal jobb, ha a szkriptváltoztatásokat a webhely funkcióin belül hajtják végre, és a változás kezelése nem áll rendelkezésre a látogató számára, ideértve az erőforrás-adminisztrátort is.
Eredmények mentése
A kapott és frissített információkat sorba sorra írja a fájlba az fputs () függvény vagy a teljes file_put_contents () függvény.
$ fName = $ _SERVER ["DOCUMENT_ROOT"]. "/Tmp/scData.php"
$ fvs = fopen ($ fName, "a")
nyáj ($ fvs, LOCK_EX)
$ cLine = "1 sor". chr (10)
bemenetek ($ fvs, $ cLine)
$ cLine = "2 sor". chr (10)
bemenetek ($ fvs, $ cLine)
fflush ($ fvs)
nyáj ($ fvs, LOCK_UN)
fclose ($ fvs)
A felvétel soronkénti változatában manipulálhatja az adatokat a felvétel során, a második esetben a felvett karakterlánc vagy tömb a teljes fájlba kerül.
$ file = "scData.php"
$ cContents = file_get_contents ($ fájl)
// rekord hozzáadása
$ cContents. = "új bejegyzésn"
// írja vissza a fájlt
file_put_contents ($ fájl, $ cContents)
A PHP fájlok olvasása és írása egyszerű és egyszerűtermészetesen. Fontos azonban szem előtt tartani: minden fájl nevet, kiterjesztést és elérési utat (mappát) hordoz. Annak érdekében, hogy a PHP szkript fájlokat tudjon olvasni és írni, ennek a szkriptnek rendelkeznie kell a megfelelő jogokkal. Ezeket automatikusan felismerik a tárhelyen, de egyes esetekben ki kell bővíteni őket.
Egyes esetekben tanácsos ellenőriznieredményeket tesztolvasás elvégzésével. A PHP fájlok írása ezt megköveteli a fejlesztési szakaszban, de bizonyos esetekben a webhely biztonsága vagy megbízhatósága érdekében elengedhetetlen az adatrekord ellenőrzése.
A PHP, MySQl, JavaScript ésKülönösen a böngészők: csendben hagyja, hogy néhány hiba csússzon. "Nem ismerte fel, nem ..." nem jó gyakorlat az információs technológia élvonalában, de arra tanítja a fejlesztőket, hogy ne hibázzanak és tiszta, jó minőségű kódot írjanak, ami szintén jó.
PHP és valódi dokumentumokkal való munka
A php fájl olvasása minden bizonnyal képviseligyakorlati érdeklődés, de ez egy programozási terület. A webhelyek felhasználóit és látogatóit érdekli az alkalmazott információk, amelyeket táblák és dokumentumok formájában, például * .xlsx és * .docx formátumban szoktak látni. Ezek MS Excel és MS Word fájlok.
Az árucikkek, az árak és a jellemzők általában táblázatok formájában készülnek, tehát az Excel fájl olvasása a PHP-ben alapvető fontosságú.
Az ilyen fájlok kezelésére könyvtárakat fejlesztettek ki.PHPExcel és PHPWord. A * .xlsx és * .docx fájlok tartalma azonban az OOXML szabványban van bemutatva, azaz a valóban érthető dokumentum zip-archívumban kerül bemutatásra. A ZIP-archívum egy fájlkészlet, beleértve képeket, objektumokat, képleteket és más programok beillesztéseit. A szöveges fájlok itt leírások címkék formájában. Nem elég elolvasni egy ilyen fájlt, elemeznie kell azt, hogy a tartalom és a struktúra felhasználásra és megváltoztatásra kerüljön.
Ez azt jelenti, hogy az olvasási művelet válikeljárás az archívum megnyitásához. Ezek a könyvtárak maguk nyitják meg a dokumentum-archívumot, és széles fejlesztési funkciókat biztosítanak a fejlesztőnek az ilyen dokumentumok olvasására, feldolgozására és írására.
Excel táblázatok
Az Excel táblázat elolvasásához elegendő tudni a fájl nevét és elérési útját ($ xls). A következő kód eredményeként a forrás Excel táblázata értékeinek tömbjét hozza létre:
include_once 'PhpOffice / PhpExcel / IOFactory.php'
scGetExcelFile függvény ($ xls) {
$ objPHPExcel = PHPExcel_IOFactory :: betöltése ($ xls)
$ objPHPExcel-> setActiveSheetIndex (0)
// ez a tömb karaktersorozatokat tartalmaz
$ aSheet = $ objPHPExcel-> getActiveSheet ()
$ array = tömb ()
// feldolgozás
foreach ($ aSheet-> getRowIterator () mint $ sor) {
$ cellIterator = $ sor-> getCellIterator ()
$ elem = tömb ()
foreach ($ cellIterator mint $ cell)
array_push ($ elem, iconv ("utf-8", "cp1251", $ cell-> getCalculatedValue ()))
}
array_push ($ tömb, $ elem)
}
visszatér $ tömb
}
Az Excel fájlok olvasása és feldolgozása jelentősennehezebb feldolgozni a Word dokumentumokat. Az alkalmazott információk olvasására és feldolgozására irányuló komoly projekt megvalósításához az a legjobb megoldás, ha először elsajátítja a PHPWord könyvtárat. Ez jó tapasztalatokat és gyors betekintést nyújt a kérdés sajátosságaiba.
Word Docs
Csak két sor:
$ oWord = új PhpOfficePhpWordPhpWord ()
$ oDocx = $ this-> oWord-> loadTemplate ($ cFileName)
A $ cFileName dokumentum már elérhető feldolgozásra. Ezután megnyílik az archívum, tartalmát kiválasztják és elemezik, amely megjeleníthető a helyszínen, megváltoztatható és visszaírható.
$ zipClass = új ZipArchive ()
$ zipClass-> open ($ this-> tempFileName)
// olvassa el a dokumentum teljes tartalmát
mert ($ i = 0; $ i <$ zipClass-> numFiles; $ i ++) {
$ cNameIn = $ zipClass-> getNameIndex ($ i)
$ cNameInExt = substr ($ cNameIn, -4)
if (($ cNameInExt == ".xml") || ($ cNameInExt == "rels")) {
// Az ".xml" és ".xml.rels" kiterjesztéssel rendelkező fájlokat a dokumentumtáblába menti
// minden xml-sort egyedi számmal írunk sorrendben
$ cBodyIn = $ zipClass-> getFromName ($ cNameIn)
$ cBodyInLen = strlen ($ cBodyIn)
} egyéb {
// az összes többi fájlt a dokumentummappába írjuk
$ cNameOnly = substr ($ cNameIn, strrpos ($ cNameIn, "/") + 1)
$ zipClass-> getFromName ($ cNameIn, $ cWorkPath); // tartalom fájlként
}
A PHP-vel megnyíló lehetőségekAz Excel és a PHP Word lehetővé teszi a valódi dokumentumok manipulálását, azok tartalmának bármikor relevánsvá tételét. A mai dinamikus világban ez egyre fontosabbá válik. A gravitációs központ már régóta elmozdult a számítógépes technológia helyi felhasználásától egy virtuális internetes térbe. Ezért a táblák és dokumentumok helyi Microsoft-termékekben történő létrehozása kevésbé hatékony, mint az ilyen dokumentumok automatikus és félautomatikus használata olyan webhelyen, amely nemcsak a tábla vagy dokumentum készítője, hanem a fogyasztók számára is elérhető.
Szöveges fájlok, egy másik élet
Első megközelítésként a szöveges fájlok egyszerűbbek, mint aPHP fájlok vagy alkalmazásdokumentumok. Van azonban valami, amire gondolkodni kell. Az ilyen fájlok olvasási / írási műveleteit már fentebb jeleztük, de az ilyen fájlok jelentése sokkal fontosabb.
Ha van olyan ügyfél, mint egy kiszolgáló (beAz első a JavaScript, a második a PHP), akkor még a sütik és a munkamenetek mechanizmusai sem képesek megbirkózni azzal, hogy az információkat szkriptek, oldalak vagy más folyamatok között kell átadni.
A szükséges változtatásokat tükrözheti az adatbázisban, demindegyik erősségük és sebességük szempontjából a kis átmeneti vagy állandó szövegfájlok sokkal érdekesebb lehetőség lehet az információk továbbításához. Ha nem hoz létre sok apró fájlt, és nem kezeli a méretüket, akkor ezek lehetnek az adatbázis specifikus és rugalmasabb változata.
A PHP egy szöveges fájl olvasása gyors,azonnal elemzhető struktúrába, tömbbe vagy objektumba. Ez utóbbi nagyon fontos, mivel lehetővé teszi olyan objektumok létrehozását, amelyek a PHP-szkripthez rendelt időn kívül élnek, amelyek, amint tudják, csak a szerveren létezhetnek és csak az oldal betöltésekor, az AJAX válasz generálásakor, vagy más okból, amely a PHP-tolmács elindítását okozza.
Ígéretes ötletek, ajánlások
Ha arra gondolsz, hogy egy szöveges fájl vantartalom és szerkezet a fejlesztőtől, a PHP fájl az értelmező szintaxisa és a fejlesztő logikája, a html, css, xml "megjelölt" leírásai pedig szemantikai elemek, de statikus szabványok szabályozzák. Megállapíthatja azt a következtetést, hogy valószínűleg ideje a fájloknak új tartalmat szerezni, és maga maga határozza meg a fájlok minőségét és az alkalmazás logikáját. Pontosan azért, mert a programozás még nem áll készen a fejlesztés következő szakaszára, a fájlok most már egyszerűen azok a fájlok maradnak, amelyeket a fejlesztő hoz létre és meghatározza azok használatát.
A legérdekesebb és legígéretesebb a PHPa PHP fájl olvasása önmagában történik, amikor erre szükség van. Egy sor egy PHP-fájlból történő egyszerű PHP-leolvasása egy objektum létrehozásához vezet, legalább abban az állapotban, amelyben elmentettük. Ezek nem nagyon ismerős ötletek, de a modern világban minden olyan gyorsan megváltozik.