PHP: Les en PHP-fil. Arbeide med filer i PHP: lesing, skriving og anbefalinger

Og nå blir det en ganske stor, men ikke komplisert leksjon om å jobbe med filer i PHP. Først av alt, hva er filene til? Tross alt kan du lagre alt i databasen MySQL-data eller PostgreSQL eller noe annet. Men noen ganger er det oppgaver når du bruker en database, med all behandling og bekymring for tilkoblingssikkerhet, er ikke tilrådelig. For eksempel må vi lage en vanlig teller, men før dette brukte vi ikke en database i prosjektet. Så, for en liten teller, bør vi lage en database og lagre bare et par linjer i den? Det er mye enklere å bruke filer her. I tillegg, noen ganger ikke hosting støtter databaser i det hele tatt, da filer er vanligvis det eneste alternativet.

Vel, la oss si at jeg overbeviste deg om at filene er nødvendige :) La oss nå finne ut hvordan vi jobber med dem. Hvordan lage, åpne, skrive, overskrive, lese og så videre. Første ting først.

Opprett en fil

PHP bruker fopen-funksjonen til å åpne filer. Den kan imidlertid også lage filer. Hvis du sender fopen et filnavn som ikke eksisterer, vil det opprette det.

Selve fopen-funksjonen tar to parametere, som begge er nødvendige. Først må vi spesifisere navnet på filen vi vil åpne. For det andre, send en parameter som forteller funksjonen hva vi planlegger å gjøre med denne filen (for eksempel lese fra filen, skrive, etc.).

Hvis vi trenger å lage en fil, spesifiserer vi navnet og sender parameteren som vi vil skrive data til den. Merk: Vi må sørge for å fortelle PHP hva vi skriver til filen, ellers vil den ikke opprette en ny fil.

Eksempel:

$ourFileName = "testFile.txt";

$ourFileHandle = fopen($ourFileName, "w") eller die("kan"ikke åpne filen");

fclose($ourFileHandle);

Den første linjen $ourFileName = testFile.txt lager en strengvariabel der vi lagrer filnavnet.

Den andre linjen $ourFileHandle = fopen($ourFileName, ‘w’) eller die(“can't open file”) oppretter eller åpnes allerede eksisterende fil for opptak. Eller den returnerer en melding om at den ikke kan åpne filen.

Den tredje linjen fclose($ourFileHandle) lukker filen. Det er faktisk enkelt.

Filåpningsalternativer i php

Den første parameteren 'r' (les) - åpner filen for skrivebeskyttet, du kan ikke skrive til den.

Den andre parameteren 'w' (skriv) – åpner for skriving. I dette tilfellet vil opptaket alltid gå fra begynnelsen av filen. Hvis det allerede er noe informasjon der, vil den bli overskrevet.

Den tredje parameteren 'a' (legg til) - åpner filen for skriving, men vil legge til på slutten av filen, i motsetning til w.

Avanserte alternativer:

Parameter 'r+' - åpner for både lesing og skriving. Pekeren vil være i begynnelsen av filen.

Parameter 'w+' - åpner for både lesing og skriving, MEN sletter all informasjon som var i filen!!!

parameter 'a+' - åpner for lesing og skriving, men pekeren vil være på slutten av filen.

Naturligvis kan bare én av disse parameterne overføres til en funksjon, og ikke flere. De må erstattes med "X":

fopen($ourFileName, "X")

Skriver til en fil

Vel, nå har vi åpnet filen, valgt parameteren vi trenger, hva neste? Du må skrive noe i den. Hvordan gjøre det? Ved å bruke fwrite-funksjonen, som tar som parametere en peker til en fil og en tekstlinje som vi ønsker å skrive. Eksempel:

$myFile = "testFile.txt";

$fh = fopen($myFile, "w") eller die("kan ikke åpne filen");

$stringData = "Første linje";

fwrite($fh, $stringData);

$stringData = "Andre linje";

fwrite($fh, $stringData);

Vi opprettet en fil testFile.txt, pekeren til den er lagret i $fn-variabelen. Vi skrev linjen "Første linje" inn i den (på slutten brukte vi linjesluttsymbolet n), og deretter "Andre linje". Så lukket de filen.

MERK FØLGENDE! Glem aldri å lukke filene dine! Ellers i tilfelle brak kjører skriptet - dataene vil ikke bli lagret i filene! Bruk alltid fclose etter jobb!!!

Leser fra en fil

Vi har skrevet det ned, la oss nå lese det! Det er ikke så vanskelig heller. Vi bruker fread-funksjonen. Som input gir vi den en peker til filen og antall byte vi ønsker å lese. For eksempel, ett tegn er lik en byte (avhengig av kodingen), vi ønsker å lese 5 tegn: $theData = fread($fh, 5).

Men hvis vi trenger å få all informasjonen som er i filen, vil vi trenge filstørrelsesfunksjonen, som returnerer antall byte i filen, derfor, hvis resultatet av filstørrelsesfunksjonen sendes til fread, vil vi få all informasjon fra filen:

$myFile = "testFile.txt";

$fh = fopen($minfil, "r");

$theData = fread($fh, filstørrelse($myFile));

Jeg håper jeg forklarte det tydelig.

$myFile = "testFile.txt";

$fh = fopen($minfil, "r");

$theData = fgets($fh);

Som et resultat får vi den første linjen fra testFile.txt-filen. Følgelig, for å gå gjennom alle linjene, må du bruke en forhver løkke:

$lines = file("testFile.txt");

foreach($lines som $single_line)

echo $single_line . "
n";

Nå har du lært hvordan du åpner filer for lesing, skriving eller begge deler. Skriv data til dem eller legg dem på toppen ved hjelp av Append, og les også informasjon fra dem.

I PHP må du ofte håndtere å lage en fil... det er veldig enkelt: det er ingen fil på disken, koden ble kjørt og filen dukket opp, så kan du lese denne filen inn i en annen variabel eller til og med hvilken som helst side på Internett og så skriv noe der... men for dette må du kunne spesialfunksjoner... mer om det i denne artikkelen...

For å lage en fil i PHP i et kjørbart skript, trenger du bare å spesifisere noen få funksjoner:

La oss ta en titt på et eksempel:

$text = "En slags tekst å skrive til filen";
$fp = fopen("fil.txt", "w");
fwrite($fp, $tekst);
fclose($fp);
?>

Her bør du vite:

fopen()- funksjonen åpner filen for lesing eller skriving og forklaringer;

Denne avklaringen (modusparameteren til fopen-funksjonen) er veldig viktig:

  • "r" - åpne en fil i php Kun for lesing. Markøren er plassert i begynnelsen.
  • "r+" - åpne en fil i php for lesing og skriving. Markøren er plassert i begynnelsen. !!! - med disse to modusene r og r+ må filene allerede være opprettet (ellers vil en feil vises Advarsel: fopen(file.txt): klarte ikke å åpne strømmen: Ingen slik fil eller katalog i ...), og vi bare leser eller vi har mulighet til å legge til.
  • "w" - filen åpnes KUN for skriving. Filen avkortes til null lengde - det vil si at den overskrives. Det som trengs skrives og markøren plasseres i begynnelsen.
  • "w+" - åpner en fil for skriving OG LESING! Resten er det samme som i "w"-modus. !!! - i disse to modusene - hvis filen ikke er opprettet - BLIR ET FORSØK Å LAGE DEN!
  • "en" - åpne filen KUN for skriving. I motsetning til "w", overskriver ikke dette alternativet innholdet i filen, men plasserer markøren på slutten av linjen og legger til innholdet som vi ønsket å legge til på slutten.
  • "a+" - åpne filen for skriving og lesing.

fskriv($fp, $text) - en funksjon for å skrive til en fil i PHP - det vil si at det som er i $text-variabelen skrives til en fil som er i $fp-variabelen;

flukk($fp) - funksjon for å lukke filen som vi skrev til $fp-variabelen;

Nå kan du enkelt lage filer i php riktig, åpne dem for lesing og redigering.

Nyttige PHP tillegg og funksjoner for å jobbe med en åpen fil:

while(!feof($fp))(
$mintekst = fgets($fp, 99);
echo $mytext."
";
}

her er betingelsen oppfylt - "til slutten av filen er nådd, gjør dette" while(!feof($fp))

1. Funksjon fgets($fp, 99) - lar deg dele alt innhold i seksjoner på 99 byte og mer, for å se dette tydeligere plasserer vi en tag

Denne strengfunksjonen fgets(ressurshåndtak [, int lengde]) aksepterer som standard 1024 byte (1 kilobyte) som lengdeparameter, hvis ikke spesifisert vil det være slik. Denne parameteren er valgfri fra og med PHP 4.2.0 (Returnerer FALSE i tilfelle feil)

Tilleggsfunksjoner for å åpne, skrive og lage en fil

Funksjon - int lesefil(streng filnavn [, bool use_include_path [, ressurskontekst]]) - les filen som en helhet.

Leser en fil og skriver innholdet til utdatabufferen. Og returnerer antall byte utdata. Ved feil kommer den tilbake hvis hunden ikke brukes - @readfile.

Noe sånt som dette vil skje:

På slutten av ordet er det en tag
.

b. Funksjon - array fil(streng filnavn [, int use_include_path [, ressurskontekst]]), gjør det samme som readfile-funksjonen, med ett unntak legger den til innholdet i filen til en matrise:

På denne måten kan du lese alle sider på Internett: $lines = file("http://site/"); og iterer gjennom matrisen ved å bruke foreach-funksjonen;

3a. strengfunksjon file_get_contents(streng filnavn [, bool use_include_path [, ressurskontekst [, int offset]]]]) - lar deg få innholdet som en enkelt streng.

Det er mer universell funksjon PHP for å lese en fil, lik filfunksjon, bare innholdet returneres i en streng, ikke i en matrise, og du kan angi betingelser - hvilken byte du skal starte med - offset og hvor skal man slutte - maxlen. Ved feil vil den returnere FALSE.

Viktig!!!- i dette tilfellet erstatter funksjonen 3 på en gang: fopen(), fread() og fclose() og blir dermed kvitt merket.

3b. int funksjon file_put_contents(streng filnavn, blandet data [, int flagg [, ressurs kontekst]]) - identisk med sekvensielle kall til funksjonene fopen(), fwrite() og fclose() - returnerer antall byte skrevet.

Hvis du lærer å jobbe med PHP på egenhånd, er det viktig å lære å lese data fra en fil og gjøre endringer i den. Melde seg på php-fil utføres for å utvikle webapplikasjoner, endre serverinformasjon og lansering eksterne programmer og inkluderinger.

Hvordan jobbe med php-filer

Hvis en fil har en slik utvidelse, betyr det at den inneholder programkode skrevet på programmeringsspråket med samme navn. For å gjøre endringer, må du installere en av programvareredigererne på PC-en din:

PHP Expert Editor;
. Dreamweaver;
. Eclipse PHP utvikling;
. PHPEdit.

Hvis du lager et nettsted, må du ofte bruke identiske design, som enkelt lagres som maler i en annen fil. For dette er det bedre å bruke inkluderer. Etter å ha angitt denne funksjonen, må du skrive tilkoblingsnavnet og utvidelsen i php-filen, for eksempel inkludere 1.php. Denne utformingen støtter flere lesing av den inkluderte filen, og tilleggsfunksjon er kontinuiteten i kodeutførelse i tilfelle feil. Hvis noe går galt, vil koden fortsette å bli utført fra en ny linje.
På denne måten vil du inkludere filen i koden din. En annen måte er å angi kreve. I motsetning til inkluderingen beskrevet ovenfor, inkluderes filen før kjøringen starter programkode, men du kan bare få tilgang til den én gang.

Filbekreftelse

Før du skriver til en php-fil, må du forsikre deg om at den eksisterer, og deretter åpne den og gjøre den nødvendige redigeringen. For å gjøre dette kan du bruke funksjonen file_exists() hvis den bekrefter tilstedeværelsen, vil svaret TRUE returneres i redigeringsvinduet, ellers - FALSE.
En annen funksjon is_file() kan varsle deg om at det er mulig å skrive data til en php-fil. Det er mer pålitelig enn file_exits, og de fleste programmerere bruker is_file for å komme i gang. Når du har bekreftet at filen eksisterer, kan du begynne å jobbe med den.

Gjør endringer i en fil

Det første verktøyet du kan bruke til å gjøre endringer i en fil er fwrite(). Den skriver linjer med følgende syntaks:

Int - manipulator;
. String er en variabel.

Det er en annen funksjon som ligner på denne - fputs(), som er et alias. Det er ingen forskjeller mellom disse verktøyene, du kan velge det ene eller det andre. For studenter er fwrite mer vanlig, mens praktiserende programmerere oftest bruker fputs.

Å levere php oppføring V tekstfil, én ting må observeres viktig tilstand- den skal være åpen for redigeringer. En slik fil må ligge i en mappe med skriverettigheter.

For å jobbe, prøv å åpne den først Tekstdokument i programmet, og foreta deretter redigeringer ved hjelp av konvensjonelle verktøy.

// Åpne en tekstfil
$f = fopen("tekst.txt", "w");
// Skriv en tekststreng
fwrite($f, "Hei! God dag!");
// Lukk tekstfil
fclose($f);

I dette eksemplet er text.txt dokumentnavnet. Du kan kalle det annerledes: «Hei! God dag! - et eksempel på tekst, det kan være helt vilkårlig. Alle endringer lagres automatisk i den åpne filen.

Merk at PHP er et generelt formål. Den brukes intensivt til å lage webapplikasjoner. Denne løsningen støttes av de fleste hostingleverandører. Vi snakker om lederen blant verktøyene som brukes til å lage nettsider. Nå vet du hvordan du skriver til en php-fil.

Og nå blir det en ganske stor, men ikke komplisert leksjon om å jobbe med filer i PHP. Først av alt, hva er filene til? Tross alt kan du lagre alt i en MySQL eller PostgreSQL eller en hvilken som helst annen database. Men noen ganger er det oppgaver når du bruker en database, med all behandling og bekymring for tilkoblingssikkerhet, er ikke tilrådelig. For eksempel må vi lage en vanlig teller, men før dette brukte vi ikke en database i prosjektet. Så, for en liten teller, bør vi lage en database og lagre bare et par linjer i den? Det er mye enklere å bruke filer her. I tillegg, noen ganger ikke hosting støtter databaser i det hele tatt, da filer er vanligvis det eneste alternativet.

Vel, la oss si at jeg overbeviste deg om at filene er nødvendige :) La oss nå finne ut hvordan vi jobber med dem. Hvordan lage, åpne, skrive, overskrive, lese og så videre. Første ting først.

Opprett en fil

PHP bruker fopen-funksjonen til å åpne filer. Den kan imidlertid også lage filer. Hvis du sender fopen et filnavn som ikke eksisterer, vil det opprette det.

Selve fopen-funksjonen tar to parametere, som begge er nødvendige. Først må vi spesifisere navnet på filen vi vil åpne. For det andre, send en parameter som forteller funksjonen hva vi planlegger å gjøre med denne filen (for eksempel lese fra filen, skrive, etc.).

Hvis vi trenger å lage en fil, spesifiserer vi navnet og sender parameteren som vi vil skrive data til den. Merk: Vi må sørge for å fortelle PHP hva vi skriver til filen, ellers vil den ikke opprette en ny fil.
Eksempel:

$ourFileName = "testFile.txt"; $ourFileHandle = fopen($ourFileName, "w") eller die("kan ikke åpne filen"); fclose($ourFileHandle);

Den første linjen $ourFileName = testFile.txt lager en , der vi lagrer filnavnet.
Den andre linjen $ourFileHandle = fopen($ourFileName, ‘w’) eller die(“can't open file”) oppretter eller åpner henholdsvis en eksisterende fil for skriving. Eller den returnerer en melding om at den ikke kan åpne filen.
Den tredje linjen fclose($ourFileHandle) lukker filen. Det er faktisk enkelt.

Filåpningsalternativer i php

  • Den første parameteren 'r' (les) - åpner filen for skrivebeskyttet, du kan ikke skrive til den.
  • Den andre parameteren 'w' (skriv) – åpner for skriving. I dette tilfellet vil opptaket alltid gå fra begynnelsen av filen. Hvis det allerede er noe informasjon der, vil den bli overskrevet.
  • Den tredje parameteren 'a' (legg til) - åpner filen for skriving, men vil legge til på slutten av filen, i motsetning til w.

Avanserte alternativer:

  • Parameter 'r+' - åpner for både lesing og skriving. Pekeren vil være i begynnelsen av filen.
  • Parameter 'w+' - åpner for både lesing og skriving, MEN sletter all informasjon som var i filen!!!
  • parameter 'a+' - åpner for lesing og skriving, men pekeren vil være på slutten av filen.

Naturligvis kan bare én av disse parameterne overføres til en funksjon, og ikke flere. De må erstattes i stedet for 'X':

Fopen($ourFileName, "X")

Skriver til en fil

Vel, nå har vi åpnet filen, valgt parameteren vi trenger, hva neste? Du må skrive noe i den. Hvordan gjøre det? Ved å bruke fwrite-funksjonen, som tar som parametere en peker til en fil og en tekstlinje som vi ønsker å skrive. Eksempel:

$myFile = "testFile.txt"; $fh = fopen($myFile, "w") eller die("kan ikke åpne filen"); $stringData = "Første linje\n"; fwrite($fh, $stringData); $stringData = "Andre linje\ n n"; fwrite($fh, $stringData); fclose($fh);

Vi opprettet en fil testFile.txt, pekeren til den er lagret i $fn-variabelen. Vi skrev linjen "Første linje" inn i den (påførte linjesluttsymbolet \n på slutten), og deretter "Andre linje". Så lukket de filen.

MERK FØLGENDE! Glem aldri å lukke filene dine! Ellers, hvis skriptkjøringen avsluttes unormalt, vil ikke dataene i filene bli lagret! Bruk alltid fclose etter jobb!!!

Leser fra en fil

Vi har skrevet det ned, la oss nå lese det! Det er ikke så vanskelig heller. Vi bruker fread-funksjonen. Som input gir vi den en peker til filen og antall byte vi ønsker å lese. For eksempel, ett tegn er lik en byte (avhengig av kodingen), vi ønsker å lese 5 tegn: $theData = fread($fh, 5).
Men hvis vi trenger å få all informasjonen som er i filen, trenger vi filstørrelsesfunksjonen, som returnerer antall byte i filen, derfor, hvis resultatet av filstørrelsesfunksjonen sendes til fread, får vi all informasjon fra filen:

$myFile = "testFile.txt"; $fh = fopen($minfil, "r"); $theData = fread($fh, filstørrelse($myFile)); fclose($fh); echo $theData;

Jeg håper jeg forklarte det tydelig.
Noen ganger er det nyttig å lese en fil linje for linje, og ikke etter antall byte. For å gjøre dette, i stedet for fread, trenger du bare å bruke fgets:

$myFile = "testFile.txt"; $fh = fopen($minfil, "r"); $theData = fgets($fh); fclose($fh); echo $theData;

Som et resultat får vi den første linjen fra testFile.txt-filen. Følgelig, for å gå gjennom alle linjene du trenger å bruke:

\n"; ?>

Nå har du lært hvordan du åpner filer for lesing, skriving eller begge deler. Skriv data til dem eller legg dem på toppen ved hjelp av Append, og les også informasjon fra dem.

PHP dukket opp mye senere enn programmeringsspråk styrket sine posisjoner og formulerte generelle ideer om syntaks, logikk, variabler og andre programobjekter. Filer og funksjoner for å jobbe med dem gjorde ikke fremskritt, og selv problemet med filkoding, som oppsto av naturlige årsaker, førte ikke til radikalt nye løsninger.

Generelle bemerkninger

Hovedarbeidet med filer, uansett hva de er, består av åpning, lesing/skriving og lukking. Du kan bruke funksjonene for å blokkere/oppheve blokkering av tilgang til en fil mens den behandles, du kan stille inn lese/skriveposisjon i filen – alt er det samme som før, i fjern fortid.

Et viktig poeng i PHP er overfloden av funksjoner for å jobbe med filer og alternativer for å bruke dem. I praksis er det nok å bruke enkle, men fungerende alternativer. En fil er for det første programminne. Du kan lagre informasjon i den. Formålet med ethvert program, formålet med ethvert nettsted er å presentere, behandle og sikre sikkerheten til informasjon.

Viktig omstendighet

Tidligere var kravet til kompatibilitet, i hvert fall fra bunn til topp, urokkelig. Det vil si at et program som en gang er skrevet i én versjon av et programmeringsspråk, ideelt sett kompileres/tolkes i neste versjon. I moderne programmering er dette ikke tilfelle. Kravet om kompatibilitet av syntaktiske strukturer i et språk har blitt en ting fra historien, og kampen mellom stiler og programmeringsverktøy og versjoner av visse verktøy har blitt normen i livet deres.

Å jobbe med filer, så vel som med databaser, er like viktig som nettstedets grensesnitt. Den første bør bygges på en slik måte at når du endrer plattform, hosting eller språkversjon, er det ikke nødvendig å endre nettstedskoden. Grensesnittet for arbeid med filer må inkluderes i et eget skript og sikre full kompatibilitet, akkurat som nettsteddesignet må tilpasses til enhver enhet, nettleser og gi resten av nettstedets funksjonalitet de samme egenskapene.

Les og endre deg selv

Kan et program endre seg selv, det vil si, kan et script forbedres? Den dag i dag interesserer dette spørsmålet mange. Men oppgaven høres mye mer praktisk ut: PHP leser en PHP-fil. En utvikler kan ikke alltid løse et bestemt problem ved å skrive spesifikk kode. Noen ganger er det nødvendig å endre det når en besøkende kommer til nettstedet og formulerer et spørsmål som ikke var forutsett på utviklingsstadiet.

Som i alle andre tilfeller må du først og fremst åpne filen. Det spiller ingen rolle om denne filen eksisterer eller ikke. Hvis det er kjent at filen eksisterer (fil_exists()-funksjonen gir et positivt svar), brukes fopen()-funksjonen med tilgang 'r', 'r+', 'a', 'a+'. Hvis filen ikke eksisterer ennå, med tilgang 'a', 'a+', 'w', 'w+'. Resultatet av å åpne en fil vil være dens beskrivelse. Filen lukkes med funksjonen fclose().

Det er praktisk å bruke PHP til å lese en fil inn i en array når det ikke er behov for å behandle den på lesingstidspunktet.

if (fil_eksisterer($fName)) (

$aLines = fil($fName)

I dette alternativet går hver linje i filen inn i array-elementet sekvensielt. Det skal bemerkes at file()- eller file_get_contents()-funksjonene ikke trenger å åpne filen og lukke den.

Når inndatafilen er for stor og du bare trenger å finne litt informasjon, eller av andre grunner, kan du bruke PHP til å lese filen linje for linje. PHP gir muligheten til å gjøre dette med funksjonene fgets() og fgetc().

$fvs = fopen($fName, "r")

while ((false !== ($cLine = fgets($fvs, 2000)))) (

$cLines .= "
". $i. "). " . $cLine

Begge alternativene fungerer feilfritt. Men når du utfører PHP-lesing av en PHP-fil for senere modifikasjon, bør forholdsregler tas. Det er ikke alltid mulig å forutse hvordan en besøkende vil bruke det på utviklingsstadiet. Det er bedre hvis skriptene endres innenfor nettstedets funksjoner, og kontroll over denne endringen er ikke tilgjengelig for besøkende, inkludert ressursadministratoren.

Lagrer resultater

Den mottatte og oppdaterte informasjonen skrives til filen av funksjonen fputs() linje for linje eller av funksjonen file_put_contents() som helhet.

$fName = $_SERVER["DOCUMENT_ROOT"] . "/tmp/scData.php"

$fvs = fopen($fName, "a")

flock($fvs, LOCK_EX)

$cLine = "1 linje". chr(10)

fputs($fvs, $cLine)

$cLine = "2 linjer" . chr(10)

fputs($fvs, $cLine)

flock($fvs, LOCK_UN)

I opptaksalternativet linje for linje kan du manipulere data under opptaksprosessen. I det andre tilfellet plasseres den skrevne strengen eller matrisen i hele filen.

$fil = " scData.php "

$cContents = file_get_contents($file)

// legge til en oppføring

$cContents .= "ny oppføring\n"

// skriv filen tilbake

file_put_contents($fil, $cContents)

Å lese og skrive PHP-filer er enkelt og naturlig. Det er imidlertid viktig å huske på: hver fil har et navn, utvidelse og bane (mappe). For at et PHP-skript skal kunne lese og skrive filer, må skriptet ha de riktige rettighetene. De blir automatisk eksponert på hostingen, men i noen tilfeller må de utvides.

I noen tilfeller kan det være ønskelig å verifisere resultatene ved å utføre en testavlesning. Å skrive PHP-filer krever dette under utvikling, men i noen tilfeller, av hensyn til nettstedets sikkerhet eller pålitelighet, er det viktig å sjekke dataregistrering.

Et karakteristisk trekk ved PHP, MySQl, JavaScript og spesielt nettlesere: lar noen feil skje. "Ikke anerkjent, ikke gjort ..." er ikke en veldig god praksis på forkant av informasjonsteknologi, men det lærer utviklere å ikke gjøre feil og skrive ren kode av høy kvalitet, noe som heller ikke er dårlig.

PHP og arbeid med ekte dokumenter

PHP å lese en PHP-fil er absolutt av praktisk interesse, men dette er programmeringsområdet. Brukeren og besøkende på nettstedet er interessert i informasjon av anvendt karakter, som han er vant til å se i form av tabeller og dokumenter, spesielt i filformatene *.xlsx og *.docx. Dette er filer i MS Excel og MS Word-format.

Lister over varer, priser, egenskaper er vanligvis dannet i form av tabeller, så PHP-lesing av Excel-filen er viktig.

PHPExcel- og PHPWord-bibliotekene er utviklet for å fungere med slike filer. Imidlertid presenteres innholdet i *.xlsx- og *.docx-filene i OOXML-standarden, det vil si at det virkelige, forståelige dokumentet presenteres i et zip-arkiv. Et Zip-arkiv er et sett med filer, inkludert bilder, objekter, formler og innlegg fra andre programmer. Tekstfiler her er representert med beskrivelser i form av tagger. Å lese en slik fil er ikke nok, du trenger å analysere den for å få innholdet og strukturen for bruk og modifikasjon.

Dette betyr at leseoperasjonen blir til en arkivåpningsprosedyre. Disse bibliotekene åpner dokumentarkivet uavhengig og gir utvikleren omfattende funksjoner for å lese, behandle og skrive slike dokumenter.

Excel-tabeller

include_once 'PhpOffice/PhpExcel/IOFactory.php'

funksjon scGetExcelFile($xls)(

$objPHPExcel = PHPExcel_IOFactory::load($xls)

$objPHPExcel->setActiveSheetIndex(0)

//denne matrisen inneholder matriser med strenger

$aSheet = $objPHPExcel->getActiveSheet()

$array = array()

//behandling

foreach($aSheet->getRowIterator() som $row)(

$cellIterator = $row->getCellIterator()

foreach($cellIterator som $cell)(

array_push($item, iconv("utf-8", "cp1251", $cell->getCalculatedValue()))

array_push($array, $item)

Å lese og behandle Excel-filer er mye vanskeligere enn å behandle Word-dokumenter. Det beste alternativet, hvis du trenger å implementere et seriøst prosjekt for å lese og behandle anvendt informasjon, er først å mestre PHPWord-biblioteket. Dette vil gi deg god erfaring og en rask forståelse av det konkrete problemet.

Word-dokumenter

Bare to linjer:

$oWord = ny \PhpOffice\PhpWord\PhpWord()

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

$cFileName-dokumentet er nå tilgjengelig for behandling. Deretter åpnes arkivet, innholdet velges og analyseres, som kan vises på nettsiden, endres og skrives tilbake.

$zipClass = new ZipArchive()

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

// les hele innholdet i dokumentet

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

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

$cNameInExt = substr($cNameIn, -4)

if (($cNameInExt == ".xml") || ($cNameInExt == "rels")) (

// filer med filtypene ".xml" og ".xml.rels" lagres i dokumenttabellen

// hver xml-linje skrives med et unikt nummer i rekkefølge

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

$cBodyInLen = strlen($cBodyIn)

// alle andre filer skrives til dokumentmappen som den er

$cNameOnly = substr($cNameIn, strrpos($cNameIn, "/") + 1)

$zipClass->getFromName($cNameIn, $cWorkPath); // innhold som en fil

Mulighetene som tilbys av PHP Excel og PHP Word lar deg manipulere ekte dokumenter og gjøre innholdet deres relevant til enhver tid. I dagens dynamiske verden blir dette veldig viktig. Tyngdepunktet har lenge flyttet seg fra lokal bruk av datateknologi til det virtuelle internettrommet. Derfor er det mindre effektivt å lage tabeller og dokumenter i lokale Microsoft-produkter enn å arbeide med slike dokumenter i automatisk og halvautomatisk modus på et nettsted, som ikke bare er tilgjengelig for skaperen av tabellen eller dokumentet, men også for forbrukerne.

Tekstfiler, et annet liv

Til en første tilnærming er tekstfiler enklere enn PHP-filer eller applikasjonsdokumenter. Det er imidlertid noe å tenke på her. Lese-/skriveoperasjonene til slike filer er allerede angitt ovenfor, men betydningen av slike filer er mye viktigere.

Siden det er noe gitt som en klient og en server (den første domineres av JavaScript, den andre av PHP), så kan ikke selv mekanismene for informasjonskapsler og økter takle behovet for å overføre informasjon mellom skript, sider eller visse prosesser.

Det er mulig å reflektere de ønskede endringene i databasen, men for alle fordelene og hastigheten kan små midlertidige eller permanente tekstfiler være et mye mer interessant alternativ for å overføre informasjon. Hvis du ikke lager mange små filer og kontrollerer størrelsen deres, kan de være en spesifikk og mer fleksibel versjon av en database.

PHP-lesing av en tekstfil er rask, den kan umiddelbart analyseres til en struktur, array eller objekt. Det siste er veldig viktig, siden det lar deg lage objekter som lever utenfor tiden som er tildelt et PHP-skript, som, som du vet, bare kan eksistere på serveren, og bare i det øyeblikket siden er lastet, er et AJAX-svar. generert, eller av en annen grunn som får PHP-tolken til å starte.

Hvis du tenker på det faktum at en tekstfil er innholdet og strukturen fra utvikleren, er en PHP-fil syntaksen til tolken pluss utviklerens logikk, og "taggede" beskrivelser html, css, xml er mer semantiske elementer, men regulert etter statiske standarder. Man kan komme til den konklusjon at det sannsynligvis er på tide at filene får nytt innhold, og dette bør i seg selv bestemme kvaliteten og brukslogikken. Det er nettopp fordi programmering ennå ikke er klar for neste utviklingsstadium at filer i dag forblir ganske enkelt filer som utvikleren oppretter og bestemmer bruken av dem.

Det mest interessante og lovende er når PHP leser en PHP-fil uavhengig når behovet oppstår. Og en enkel PHP-lesing av en linje fra en fil resulterer i opprettelsen av et objekt, i det minste i den tilstanden det ble lagret i. Dette er ikke helt kjente ideer, men i den moderne verden forandrer alt seg så raskt.