ComputersBestandstypes

PHP: het lezen van een PHP bestand. Werken met bestanden in PHP: lezen, schrijven en aanbevelingen

PHP verscheen veel later dan programmeertalen hun posities versterken, algemene concepten over syntax, logica, variabelen en andere objecten van programma's formuleerden. De bestanden en functies van het werken met hen hadden geen vooruitgang, en zelfs het probleem van bestandsscodering, die om natuurlijke redenen ontstond, leidde niet tot kardinale nieuwe oplossingen.

Algemene notities

Het belangrijkste werk met bestanden, wat ze ook zijn, is om te openen, te lezen / te schrijven en te sluiten. U kunt de lock / unlock functie gebruiken om het bestand te openen tijdens het verwerken. U kunt de lees / schrijfpositie in het bestand instellen - alles, zoals eerder, in het verre verleden.

Een belangrijk punt in PHP is het overschrijden van de functies van het werken met bestanden en de opties om ze te gebruiken. In de praktijk is het voldoende om eenvoudige maar werkende varianten te gebruiken. Het bestand is in de eerste plaats het programma geheugen. Het kan informatie opslaan. Het doel van elk programma, het doel van elke site - om de veiligheid van informatie te vertegenwoordigen, te verwerken en te waarborgen.

Essentiële omstandigheid

Vroeger was de vereiste compatibiliteit tenminste van onder naar boven onwrikbaar. Dat wil zeggen dat een programma op een versie van de programmeertaal eenmaal geschreven is, ideaal is samengesteld / geïnterpreteerd in de volgende versie. In de moderne programmering is dit niet het geval. De vereiste compatibiliteit van syntactische constructies van taal is in de geschiedenis gegaan en de strijd tussen stijlen en middelen van programmering en versies van deze of andere instrumenten is de norm van hun leven geworden.

Werken met bestanden, evenals met databases, is belangrijk, zoveel als de interface van de site belangrijk is. De eerste moet zo worden gebouwd dat u bij het wijzigen van platforms, hosting, taalversies niet de sitecode moet wijzigen. De interface met de bestanden moet in een apart script worden geplaatst en volledige compatibiliteit garanderen, evenals het ontwerp van de site moet adequaat aanpassen aan elk apparaat, browser en de rest van de functionaliteit van de site dezelfde mogelijkheden bieden.

Lees en verander jezelf

Kan het programma zichzelf veranderen, dat wil zeggen, kan het script worden verbeterd? Tot nu toe is dit probleem van belang voor veel. Maar de taak is veel praktischer: PHP lezen van een PHP-bestand. Niet altijd kan de ontwikkelaar deze of die taak oplossen door een specifieke code te schrijven. Soms is het nodig om het te veranderen wanneer een bezoeker naar de site kwam en een vraag formuleerde die niet in de ontwerpfase was voorzien.

Zoals in alle andere gevallen moet u eerst het bestand openen. Het maakt niet uit of dit bestand al dan niet bestaat. Als u weet dat het bestand bestaat (de functie file_exists () geeft een positief antwoord), gebruik dan de functie fopen () met de toegang 'r', 'r +', 'a', 'a +'. Als er nog geen bestand is, dan met toegang 'a', 'a +', 'w', 'w +'. Het resultaat van het openen van het bestand zal zijn descriptor zijn. Het bestand is gesloten met fclose ().

Het is handig om PHP te gebruiken om een bestand te lezen in een array, wanneer het niet nodig is om het te verwerken op het moment van lezen.

Als (file_exists ($ fName)) {

$ ALines = bestand ($ fName)

}

In dit geval voert elke regel van het bestand het array-element opeenvolgend in. Opgemerkt moet worden dat de bestand () of file_get_contents () niet een bestand hoeft open te maken en te sluiten.

Als het invoerbestand te groot is, en u moet nog wat informatie vinden, of om andere redenen, kunt u PHP-bestand lezen per regel gebruiken. PHP biedt de mogelijkheid om dit te doen met de functies fgets () en fgetc ().

$ CLines = ''

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

$ I = 0

Terwijl ((false! == ($ cLine = fgets ($ fvs, 2000))))) {

$ I ++

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

}

Fclose ($ fvs)

Beide opties werken foutloos. Bij het uitvoeren van PHP die het PHP-bestand leest voor latere wijzigingen, moet u de voorzorgsmaatregelen volgen. Het is niet altijd mogelijk om varianten van het gebruik ervan door de bezoeker te verstrekken op het stadium van de website ontwikkeling. Het is beter als de wijzigingen van scripts binnen de functies van de site worden uitgevoerd en het beheer van deze wijziging is niet beschikbaar voor de bezoeker, inclusief de resourcebeheerder.

Resultaten opslaan

De ontvangen en bijgewerkte informatie wordt naar het bestand geschreven door de functie fputs () functie regel per regel of door de functie file_put_contents () volledig.

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

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

Kudde ($ fvs, LOCK_EX)

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

Fputs ($ fvs, $ cLine)

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

Fputs ($ fvs, $ cLine)

Fflush ($ fvs)

Kudde ($ fvs, LOCK_UN)

Fclose ($ fvs)

In de rij-voor-rij-versie van het record kunt u de gegevens manipuleren tijdens het schrijfproces. In het tweede geval wordt de geschreven reeks of array in het bestand als geheel geplaatst.

$ File = 'scData.php'

$ CContents = file_get_contents ($ file)

// een record toevoegen

$ CContents. = "Nieuwe invoer \ n"

// schrijf het bestand terug

File_put_contents ($ bestand, $ cContents)

Het lezen en schrijven van PHP-bestanden is eenvoudig en natuurlijk. Het is echter belangrijk om in gedachten te houden: elk bestand heeft een naam, uitbreiding en pad (map). Om het PHP-script te kunnen lezen en schrijven, moet dit script de juiste rechten hebben. Ze worden automatisch op de hosting geplaatst, maar in sommige gevallen moeten ze uitgebreid worden.

In sommige gevallen is het wenselijk om de resultaten te controleren door een testlezing uit te voeren. Het schrijven van PHP-bestanden vereist dit tijdens de ontwikkelingsfase, maar in sommige gevallen, in het belang van de beveiliging of de betrouwbaarheid van de site, is de verificatie van data-invoer essentieel.

Een kenmerkend kenmerk van PHP, MySQl, JavaScript, en vooral browsers: rustig loslaten van fouten. "Het werd niet herkend, het gebeurde niet ..." - geen goede praktijk van de voornaamste informatie technologie, maar leert ontwikkelaars om het juiste te maken en schone, kwaliteitscode te schrijven, wat ook niet slecht is.

PHP en werken met echte documenten

PHP het lezen van een PHP-bestand is zeker van praktisch belang, maar het is een programmeringsgebied. De gebruiker en de bezoeker van de sites zijn geïnteresseerd in informatie over een toegepaste natuur, die hij in de vorm van tabellen en documenten gebruikt, in het bijzonder in de formaten * .xlsx en * .docx-bestanden. Deze bestanden zijn in MS Excel en MS Word formaat.

Lijsten van goederen, prijzen, kenmerken worden over het algemeen gevormd in de vorm van tabellen, dus het lezen van Excel-bestand is essentieel.

Om te werken met dergelijke bestanden, zijn PHPExcel en PHPWord-bibliotheken ontwikkeld. De inhoud van de * .xlsx- en * .docx-bestanden is echter vertegenwoordigd in de OOXML-standaard, dat wil zeggen dat het werkelijke document dat toegankelijk is voor begrip, wordt vertegenwoordigd door het zip-archief. Ziparchief is een set bestanden, inclusief afbeeldingen, objecten, formules, inserts van andere programma's. Tekstbestanden hier worden weergegeven door beschrijvingen in de vorm van tags. Het is niet genoeg om een dergelijk bestand te lezen, u moet het analyseren om de inhoud en structuur te verkrijgen voor gebruik en wijziging.

Dit betekent dat de leeshandeling een procedure wordt voor het openen van het archief. Deze bibliotheken openen het archief van het document zelf en bieden de ontwikkelaar uitgebreide functies voor het lezen, verwerken en opnemen van dergelijke documenten.

Excel tabellen

Om de Excel-spreadsheet te kunnen lezen, is het voldoende om de naam van het bestand en het pad ervan te kennen ($ xls). Als gevolg van de uitvoering van de volgende code wordt een array van waarden van de oorspronkelijke Excel-tabel gegenereerd:

Include_once 'PhpOffice / PhpExcel / IOFactory.php'

Functie scGetExcelFile ($ xls) {

$ ObjPHPExcel = PHPExcel_IOFactory :: load ($ xls)

$ ObjPHPExcel-> setActiveSheetIndex (0)

// deze array bevat array's van strings

$ ASheet = $ objPHPExcel-> getActiveSheet ()

$ Array = array ()

// verwerking

Foreach ($ aSheet-> getRowIterator () als $ rij) {

$ CellIterator = $ row-> getCellIterator ()

$ Item = array ()

Foreach ($ celIterator als $ cel) {

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

}

Array_push ($ array, $ item)

}

Return $ array

}

Het lezen en verwerken van Excel-bestanden is veel moeilijker dan het verwerken van Word-documenten. De beste optie als u een serieus project voor het lezen en verwerken van applicatie-informatie moet implementeren, is eerst de PHPWord-bibliotheek te beheersen. Dit geeft goede ervaring en een snelle toegang tot de specificaties van het probleem.

Word documenten

Slechts twee lijnen:

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

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

Nu is het document $ cFileName beschikbaar voor verwerking. Opent vervolgens het archief, selecteert en analyseert de inhoud ervan, die op de site kan worden weergegeven, veranderd en teruggeschreven.

$ ZipClass = nieuwe ZipArchive ()

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

// lees de volledige inhoud van het document

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

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

$ CNameInExt = substr ($ cNameIn, -4)

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

// bestanden met de extensies '.xml' en '.xml.rels' worden opgeslagen in de documenttabel

// elke xml-lijn is geschreven met een uniek nummer in volgorde

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

$ CBodyInLen = strlen ($ cBodyIn)

} Anders {

// alle andere bestanden worden geschreven naar de documentmap zoals het is

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

$ ZipClass-> getFromName ($ cNameIn, $ cWorkPath); // inhoud als bestand

}

Geleentheden die worden geopend met behulp van PHP Excel en PHP Word, kunt u echt documenten manipuleren, hun inhoud op elk gewenst moment relevant maken. In de dynamische wereld van vandaag wordt dit heel belangrijk. Het zwaartepunt is sindsdien verschoven van het lokale gebruik van computertechnologie naar een virtuele internetruimte. Daarom is het creëren van tabellen en documenten in lokale producten van Microsoft minder effectief dan het werken met dergelijke documenten in automatische en semi-automatische modus op een site die niet alleen beschikbaar is voor de maker van de tabel of document, maar ook voor haar consumenten.

Tekstbestanden, een ander leven

In de eerste benadering zijn tekstbestanden eenvoudiger dan PHP-bestanden of applicatiedocumenten. Er is echter iets om na te denken. De activiteiten van het lezen / schrijven van dergelijke bestanden zijn hierboven aangegeven, maar de betekenis van dergelijke bestanden is veel belangrijker.

Als er een dergelijk gegeven is als een client en een server (JavaScript domineert de eerste, is PHP de eerste), zelfs de cookie- en sessiemeganismes hanteren niet de noodzaak om informatie tussen scripts, pagina's of andere processen over te dragen.

U kunt de nodige wijzigingen in de database reflecteren, maar met al hun voordelen en snelheid kunnen kleine tijdelijke of permanente tekstbestanden een veel interessante optie zijn voor informatieoverdracht. Als u niet veel kleine bestanden aanmaakt en hun grootte beheert, kunnen ze een specifieke en flexibele versie van de database zijn.

PHP het lezen van een tekstbestand is snel, u kunt het onmiddellijk analyseren in een structuur, een array of een object. Deze laatste is zeer belangrijk, omdat het u toelaat om objecten te maken die buiten de toegewezen tijd zijn voor het PHP-script, dat u, zoals u weet, alleen op de server kan bestaan en alleen op het moment dat de pagina geladen is, wordt het AJAX-antwoord gevormd of om een andere reden die de PHP-tolk uitzet.

Belovende ideeën, aanbevelingen

Als u denkt dat het tekstbestand de inhoud en structuur van de ontwikkelaar is, is het PHP-bestand de syntax van de tolk plus de ontwikkelaars logica. De "tagged" beschrijvingen van html, css, xml zijn meer semantische elementen maar geregeld door statische standaarden. Men kan tot de conclusie komen dat het waarschijnlijk tijd is voor bestanden om nieuwe inhoud te verwerven, en het moet hun kwaliteit en logica van toepassing bepalen. Juist omdat de programmering nog niet klaar is voor de volgende fase van de ontwikkeling, blijven de bestanden gewoon bestanden die de ontwikkelaar creëert en bepaalt het gebruik ervan.

De meest interessante en veelbelovende, wanneer PHP een PHP bestand leest, komt op zichzelf voor, wanneer dit nodig wordt. Een eenvoudige PHP-lezing van een tekenreeks uit een bestand resulteert in de oprichting van een object, althans in de toestand waarin het is opgeslagen. Dit zijn niet precies de gebruikelijke ideeën, maar in de moderne wereld verandert alles zo snel.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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