Databasene MySQL og Access blir stadig merTilgjengelig metode for datalagring. Men i begynnelsen av 1990-tallet var det populært å jobbe med filer i PHP, og lagre poster i formaterte tekstfiler i CSV-format, adskilt av nye linjer.
Databaser er praktiske, men hver utvikler burdehar i det minste litt grunnleggende kunnskap om hvordan man leser og skriver filer. Kanskje mange vil reflektere over spørsmålet: "Hvorfor trenger jeg å vite dette?" Hvis jeg bruker filer, er de skrevet i XML, og jeg bruker bare parseren. "
Så, her er noen grunner til hvorfor du kanskje trenger filer:
Å lese filer og skrive er grunnleggende operasjoner.Hvis du vil lese dokumentet, må du først åpne det. Etter det, les så mye innhold som mulig, og lukk filen. For å skrive informasjon til et dokument må du først åpne det (eller kanskje lage det hvis det ikke allerede er opprettet). Deretter registrerer du de nødvendige dataene og lukker den på slutten.
Det er også praktisk å bruke innebygde funksjoner som automatisk åpner og lukker. De er tilgjengelige i PHP5. Du bør også gjøre deg kjent med egenskapene til filene, det vil si med egenskapene.
De kan fortelle:
Det er best å lære alle de grunnleggende egenskapene for å jobbe med filer i PHP. Dette vil i stor grad legge til rette for arbeidet.
Du må kanskje kjenne tidspunktet for den siste redigeringen av filen. I dette tilfellet kommer funksjonene til redning: filatime (), filemtid () og filtid ().
";
ekko $ fil. "hadde den siste endringen i noden". dato ($ formatDate, $ timeM). "."
";
ekko $ fil. "har blitt endret." dato ($ formatDate, $ timeC). "."; ";
Her henter koden tidsstempelet for den siste tilgangen og viser den:
Filectime () -funksjonen viser tidspunktet for endring av forskjellige opplysninger relatert til filen (for eksempel tilgangsrettigheter), og filemtime () viser endringene til selve filen.
Date () -funksjonen ble brukt til å formatere Unix-tidsstempel returnert av fil * tid () -funksjonene.
For å finne ut om filer faktisk fungerer i PHP, kan du bruke is_file () -funksjonen eller is_dir () -funksjonen for å sjekke om dette er en katalog.
php
ekko $ fil. (is_file ($ fil)? "": "ikke"). "fil.
";
ekko $ fil. (is_dir ($ fil)? "": "ikke"). "Directory.";
Eksempel på kodeutgang:
På denne måten kan du unngå feil og ikke utilsiktet åpne "ikke filen". I PHP er det å jobbe med filer og kataloger likt.
Før du arbeider med en fil, kan du sjekke om den er lesbar eller skrivbar. For å gjøre dette bruker du funksjonene is_writable () og is_readable ().
php
ekko $ fil. (er_lesbar ($ fil)? "": "ikke"). "lest.
";
ekko $ fil. (er_skrivbar ($ fil)? "": "ikke"). "Det står skrevet.";
Disse funksjonene returnerer en boolsk og forklarer om operasjonen kan utføres i en fil.
Koden viser følgende verdier på skjermen:
Ved hjelp av den ternære operatøren kan du spesifisere om en fil er tilgjengelig eller ikke.
For å finne ut filstørrelsen, må du bruke filstørrelsesfunksjonen (). Det vises i byte.
php
$ file = "C: Windowsfile.ini"; $ size = filstørrelse ($ fil);
ekko $ fil. "har en størrelse." $ størrelse. "Bytes.";
Funksjonen viser følgende:
Использование файла в системе Windows здесь understreker en nyanse. Et tilbakeslag har spesiell betydning som rømningskarakter. Du må unngå dette ved å legge til et nytt tilbakeskritt.
Hvis filen ennå ikke er opprettet, peker filstørrelsesfunksjonen () på False og en feil. Kontroller derfor først filen for eksistensen av ønsket fil_eksister () -kommando.
php
$ file = "C: Windowsfile.ini"; if (file_exists ($ file)) {$ size = filesize ($ file);
ekko $ fil. "har en størrelse." $ størrelse. "byte.";} else {echo $ file. "fil ikke funnet.";}
Kontrollen av filen_eksister () bør nesten alltid være slått på for sikkerhet.
Den forrige delen viser hvor mye du kanLær om filene du jobber med før du begynner å lese eller skrive til dem. Nå kan du forstå hvordan innholdet i filen blir lest.
Funksjoner for å jobbe med PHP-filer gjør oppgaven enklere.I dette tilfellet trenger du file_get_contents (). Den vil lese hele innholdet i filen i en variabel uten å måtte åpne eller lukke filen på egen hånd. Dette er praktisk når skrivevolumet er relativt lite, ettersom det ikke alltid er rasjonell å lese 1 GB data i arkivet med en gang å lese 1 GB data i arkivet. Arbeid med .ini-filer og file_get_contents () -funksjonen vises nedenfor.
php
$ file = "c: windowsfile.ini"; $ file1 = file_get_contents ($ fil);
ekko $ fil1;
For store filer eller bare avhengig avbehovene til skriptet ditt, kan det være klokere å behandle detaljene selv. Dette skyldes det faktum at så snart filen åpnes, kan du søke etter en spesifikk merknad i den og lese så mye data du vil. Fopen () -funksjonen brukes til å åpne en fil.
php
$ file = "c: windowsfile.ini"; $ file1 = fopen ($ fil, "r");
For å bruke fopen () -funksjonen, kreves det to argumenter:
Funksjonen returnerer et håndtak eller en strøm til en fil som er lagret i variabelen $ file1. Det må brukes i alle påfølgende kommandoer når du arbeider med en fil.
regime | verdi | Markørstilling | Hvis filen ikke eksisterer? |
r | bare lesing | start av fil | vil gi en feil |
i | post bare | start av fil | vil lage en ny |
og | post bare | slutten av filen | vil lage en ny |
Hvis du vil lese en linje om gangen fra en åpen fil, kan du bruke fgets () -funksjonen.
php
$ file = "c: windowsfile.ini"; $ file1 = fopen ($ fil, "r");
do {echo fgets ($ file1). "
";}
while (! feof ($ file1));
fclose ($ fil1);
Å bruke en gjør-mens-sløyfe er bravalg om å finne ut på forhånd hvor mange linjer som er i filen. Feof () -funksjonen sjekker om filen har nådd ferdig, og løkken fortsetter til slutten av filtilstanden er nådd. Etter å ha lest, bruk fclose () -funksjonen for å lukke dokumentet.
To ofte brukte modus når du skriver til en fil medved å bruke fwrite () -funksjonen: “w” og “a”. “W” betyr at du må skrive til dokumentet, men det vil først slette alt innhold, “a” - legge til nye data til det som allerede finnes i filen. Du må være sikker på at riktig alternativ blir brukt.
Følgende eksempel bruker "a" -modus for opptak.
php
$ myFile = "files.txt"; $ file1 = fopen ($ myFile, "a");
$ output = "banan". PHP_EOL; fwrite ($ file1, $ output);
$ output = "Kina." PHP_EOL;
fwrite ($ fil1, $ utgang);
fclose ($ fil1);
Først tilordnes filnavnet til variabelen, deretterden åpnes i modus "a" for å legge til. Dataene som skal skrives tilordnes variabelen $ output og fwrite (), og informasjonen legges til filen. Prosessen gjentas for å legge til en ny linje, deretter lukkes dokumentet ved å bruke fclose ().
Den forhåndsdefinerte konstante PHP_EOL legger til et nylinjetegn spesifikt for plattformen som PHP jobber med tekstfiler på.
Innholdet i filen etter utførelse av koden ovenfor skal se slik ut:
Funksjonen file_put_contents () kan ogsåskriv til en fil. Den godtar filnavnet, dataene som skal skrives og FILE_APPEND-konstanten hvis den skal legge til data (den vil overskrive innholdet i filen som standard).
Her er det samme eksemplet som over, men denne gangen ved å bruke file_put_contents ().
php
$ myFile = "files.txt";
file_put_contents ($ myFile, banana. PHP_EOL);
file_put_contents ($ myFile, Kina. PHP_EOL, FILE_APPEND);
Du må jobbe med disse funksjonene ofte, så det er bedre å huske dem. I tillegg kan de en dag jobbe med PHP-filer for å lette noen komplekse oppgaver.