Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Høgskolen i Oslo Webprogrammering Filbehandling i PHP.

Liknende presentasjoner


Presentasjon om: "Høgskolen i Oslo Webprogrammering Filbehandling i PHP."— Utskrift av presentasjonen:

1 Høgskolen i Oslo Webprogrammering Filbehandling i PHP

2 I dag l Bruk av filer i PHP l Kodegjennomgang l Oppgaveløsning på lab

3 Bruk av filer l For å lagre data permanent. –I motsetning til Superglobals (Sessions) –Lagres på server (i motsetning til Cookies). l Brukes for enkel lagring av data. –Mer komplekse data -> Databaser

4 Filhåndtering l Lage filen l Åpne filen l Operere mot filen (lese eller skrive) l Lukke filen

5 Lage filen l For at PHP skal kunne skrive til filen må denne lages på serveres først: l Først må det lages en katalog på serveren som har alle rettigheter (777). l Så må filen lages med alle rettigheter (777,slik at PHP kan skrive til den). l Dette må gjøres på serveren via f.eks WinSCP l Holder med 666, (incl. others write).

6 Lage katalog/fil i WinSCP l Opprett ny katalog under www (høyrekikk og velg new folder eller F7). l Velg ”more” under Create-folder og velg set permission. Kryss av alle muligheter (til du får 777). l Evt. etter at ny katalog er opprettet høyreklikk på katalogen og velg ”Properties”. Velg så alle ”Permissions” (777). l Gjør tilsvarende med filen du ønsker opprettet

7 Fil-funksjoner l fopen(”filnavn”,”modus”); –Modus r : read, r+ : read/write, w bare write –Returnerer filreferanse som brukes videre l fwrite(filreferanse, ”streng til filen”); –Bruk \n for å få ny linje i strengen l $streng = fgets(filreferanse); –Leser en linje inn i strengen l fclose(filreferanse)

8 <?php $filref=fopen("temp/testfil.txt","w"); // fra lokal root dvs. www fwrite($filref,"Nå skriver jeg noe til filen \n Dette er andre linje i filen"); fclose($filref); $filref=fopen("temp/testfil.txt","r"); $filstring=fgets($filref); echo "Her er innholdet av filen : ".$filstring; echo " Her er andre linje : "; $filstring=fgets($filref); echo $filstring; fclose($filref); // dette er ikke nødvendig men en god vane. ?> Her er innholdet av filen : Nå skriver jeg noe til filen Her er andre linje : Dette er andre linje i filen

9 Teller for antall besøkende <?php $filref=fopen("../temp/teller.txt","r"); $teller=fgets($filref); fclose($filref); $teller++; $filref=fopen("../temp/teller.txt","w"); fwrite($filref,$teller); fclose($filref); echo "Telleren er nå ".$teller; ?> Telleren er nå 1 Telleren er nå 2 Telleren er nå 3 Merk for at dette skal fungere må filen eksistere med riktige rettigheter og inneholde en initial verdi (0) Her ligger php filen i en annen katalog på samme nivå som temp

10 Andre fil-funksjoner l fread(filreferanse,antall tegn) –Leser et antall tegn fra filen l feof(filreferanse) –Sjekker om filen er lest til slutten (end of file) l file(”filnavn”) –Leser hele filen inn i et array, linje for linje –Behøver ikke å bruke open/close –Merk: ikke filpekeren

11 Andre fil-funksjoner forts. l filemtime(”filnavn”) –Returnerer dato/tid for fil sist endret (innhold) l file_get_contents(”filnavn”) –Returnerer hele filen til en string l fgetc(filreferanse) –Leser et og et tegn fra filen l readfile(”filnavn”) –Leser hele filen og echo’er den ut på skjerm

12 Opplasting av filer til server l For å lagre tekst-filer (f.eks opplasting i Fronter) l For å lagre bilde-filer (f.eks til et fotoalbum) l En ny type i HTML skjema : ”file” l Filen lastes opp i et temp område på server l Henter filinformasjon via $_FILES[ ][ ] (to dim) l Må flyttes til ditt sted : move_uploaded_file l Bruke HTML for å vise

13 Skjema for å laste opp en fil Skriv inn filnavnet som du ønsker å laste opp: Skriv inn filnavnet som du ønsker å laste opp: Browse…Last opp NB!

14 Kode for å flytte filen og vise den <?php // www/kode/fil2.php $temp_fil = $_FILES["filstreng"]["tmp_name"]; // array med to dimensjoner $filnavn = $_FILES["filstreng"]["name"]; // Må ta utgangspunkt i www som topp-node. // Denne PHP filen ligger under www/kode/, derfor trenger vi å gå opp.. og ned $helt_filnavn = "../temp/".$filnavn; // Katalogen /temp/ må ha riktige rettigheter (777 eller 666 i Unix). move_uploaded_file($temp_fil,$helt_filnavn); // Må ta utgangspunkt i www som topp-node. echo " "; ?>

15 Katalogfunksjoner l For å vise alle bildene i en katalog: l opendir(”katalognavn”); –Returnerer en katalogreferanse l readdir(katalogreferanse); –Returnerer en og en katalog/filnavn l Kan bruke while ($neste = readdir(ref)) –For å returnere alle katalog/filnavnene –Legge inn katalog/filnavn inn i

16 trim l Når data fra en fil skal testes på l For å unngå ”white spaces ” etter tegnet $tegn = fgets(fil); If $tegn = ”a” { echo ”a er lest inn”; } $tegn = fgets(fil); $tegn1 = trim($tegn); If $tegn1 = ”a” { echo ”a er lest inn”; } Ikke denne Men denne!


Laste ned ppt "Høgskolen i Oslo Webprogrammering Filbehandling i PHP."

Liknende presentasjoner


Annonser fra Google