1 / 16

Webprogrammering

Webprogrammering. Filbehandling i PHP. I dag. Bruk av filer i PHP Kodegjennomgang Oppgaveløsning på lab. Bruk av filer. For å lagre data permanent. I motsetning til Superglobals (Sessions) Lagres på server (i motsetning til Cookies). Brukes for enkel lagring av data.

virote
Download Presentation

Webprogrammering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Webprogrammering Filbehandling i PHP

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

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

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

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

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

  7. Fil-funksjoner • fopen(”filnavn”,”modus”); • Modus r : read, r+ : read/write, w bare write • Returnerer filreferanse som brukes videre • fwrite(filreferanse, ”streng til filen”); • Bruk \n for å få ny linje i strengen • $streng = fgets(filreferanse); • Leser en linje inn i strengen • 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 : <br/>".$filstring; echo "<br/> Her er andre linje : <br/>"; $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 Her ligger php filen i en annen katalog på samme nivå som temp <?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)

  10. Andre fil-funksjoner • fread(filreferanse,antall tegn) • Leser et antall tegn fra filen • feof(filreferanse) • Sjekker om filen er lest til slutten (end of file) • 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. • filemtime(”filnavn”) • Returnerer dato/tid for fil sist endret (innhold) • file_get_contents(”filnavn”) • Returnerer hele filen til en string • fgetc(filreferanse) • Leser et og et tegn fra filen • readfile(”filnavn”) • Leser hele filen og echo’er den ut på skjerm

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

  13. Skjema for å laste opp en fil NB! <form action="fil2.php" method="post" enctype="multipart/form-data"> Skriv inn filnavnet som du ønsker å laste opp:<br/> <input type="file" size="20" name="filstreng" /> <input type="submit" name="knapp" value ="Last opp"/> </form> Skriv inn filnavnet som du ønsker å laste opp: Browse… Last opp

  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 "<img src='../temp/$filnavn' height = '200' align = 'left'>"; ?>

  15. Katalogfunksjoner • For å vise alle bildene i en katalog: • opendir(”katalognavn”); • Returnerer en katalogreferanse • readdir(katalogreferanse); • Returnerer en og en katalog/filnavn • Kan bruke while ($neste = readdir(ref)) • For å returnere alle katalog/filnavnene • Legge inn katalog/filnavn inn i <img src=…>

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

More Related