Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Filbehandling (Kapittel 8)

Liknende presentasjoner


Presentasjon om: "Filbehandling (Kapittel 8)"— Utskrift av presentasjonen:

1 Filbehandling (Kapittel 8)

2 Mål Forstå hvordan filbehandling fungerer i PHP inkludert
Lagre og hente ut informasjon på filer Gjøre filoperasjoner Laste opp filer via skjemaer Forstå sikkerhetsrisikoen ved filopplasting

3 Hva er filbehandling? Viktig del av webprogrammering
Vanlige bruksområder Lagring av data Konfigurasjon Caching

4 Filbehandling i PHP omfatter
Opprette nye filer Endre/lese innholdet i filer Finne filer Motta filer gjennom skjema Kopiere, flytte og slette filer og kataloger Endring av rettigheter Gjennkjenne filtyper

5 Normal behandlingsprosess
Åpne filen Operere mot filen Lukke filen <?php $fp = fopen('fil.txt', 'r'); $linje = fread($fp, 4096); fclose($fp); ?>

6 Hva med feilhåndtering?
<?php if($fp = fopen('fil.txt', 'r')) { $linje = fread($fp, 4096); fclose($fp); } else { echo “Klarte ikke åpne fila”; } // alternativt $fp = fopen('fil.txt', 'r') or die(“Klarte ikke åpne fila”); ?>

7 Viktige begreper Filreferansen Modus Filnavnet Filpekeren
Vet hvilken fil den oppererer på Modus Filer åpnes i et modus basert på hvilke operasjoner du skal utføre Filnavnet Relative eller absolutte stier eller URL'er Filpekeren Indre peker i PHP som vet hvor i filen den skal operere

8 Ulike modus

9 Mye brukte funksjoner fopen() fread() fwrite() filesize() fclose()
Åpner en fil og oppretter en filreferanse fread() Leser tegn inntil den treffer på linjeskift fwrite() Skriver til fil filesize() Returnerer antall bytes en fil består av fclose() Lukker filreferansen

10 Skrive data til en fil <?php $fp = fopen('fil.txt', 'w');
fwrite($fp, “Hello World!”); fclose($fp); ?>

11 Lese data fra en fil <?php $fp = fopen('fil.txt', 'r');
$innhold = fread($fp, 4096); fclose($fp); echo $innhold; ?>

12 Legge til data på slutten av en fil
<?php $fp = fopen('fil.txt', 'a'); fwrite($fp, “Hello World!”); fclose($fp); ?>

13 Sjekk om filen er lesbar
<?php $fil = 'fil.txt'; if(is_readable($fil)) { $fp = fopen($fil, 'r'); echo fgets($fp); fclose($fil); } else { echo “$fil er ikke lesbar\n”; } ?>

14 Et par nyttige snarveier
file_get_contents($fil) Returnerer hele fila som en string file_put_contents($fil, $string) Lagrer en string til en fil file($fil) Leser hele filen og returnerer en matrise med et element for hver linje i fila readfile($fil) Skriver ut innhold av fila direkte

15 Sortering av linjer i en tekstfil
<?php // Les inn alle linjer direkte til en matrise $linjer = file(“linjer.txt”); // Sorterer matrisen i stigende rekkefølge sort($linjer); // Skriv til fil $fp = fopen(“linjer_sortert.txt”, “w”); foreach($linjer as $linje) { fwrite($fp, $linje); } fclose($fp); ?>

16 Behandle en fil linje for linje
<?php // En mer optimal måte å behandle // linje for linje av en fil med bruk av // et buffer vi overskriver for hver løkkerunde $fp = fopen('fil.txt', 'r'); while(!feof($fp)) { $buffer = fread($fp, 4096); // Behandle buffer echo $buffer; } fclose($fp); ?>

17 Visningsteller <?php // Les innhold fra teller filen
$filnavn = 'teller.txt'; $fil = fopen($filnavn, 'r') or die(“Kunne ikke åpne $filnavn”); $teller = (int) fread($fil, filesize($fil)); fclose($fil); $teller++; // øk teller med 1 echo “Du er besøkende nummer $teller”; // Lagre oppdatert teller $fil = fopen($filnavn, 'w'); fwrite($fil, $teller); ?>

18 Kopiere, slette og flytte filer
Kopiere fil copy($fra, $til) Slette fil unlink($fil) Flytte fil rename($fra, $til)

19 Skjema for opplasting <form method="post" enctype="multipart/form-data"> <input type="file" name="bilde" size="30"/> <input type="submit" name="submit" value="Last opp"/> </form> <?php // Flytt og vis bilde if(isset($_POST['submit'])) { $tmp_name = $_FILES['bilde']['tmp_name']; $name = $_FILES['bilde']['name']; move_uploaded_file($tmp_name, $name); echo "<img src=\"$name\"/>"; } ?>

20 Sikkerhet ved opplasting av filer
Ikke tillat hva som helst! Tillater du opplasting av filer til webområdet uten restriksjoner kan brukere laste opp egne PHP script Gi eksplisitt tillatelse til filtyper

21 Sikrere skjema for opplasting av bilder
<form method="post" enctype="multipart/form-data"> <input type="file" name="bilde" size="30"/> <input type="submit" name="submit" value="Last opp"/> </form> <?php // Flytt og vis bilde if(isset($_POST['submit'])) { $tmp_name = $_FILES['bilde']['tmp_name']; $name = $_FILES['bilde']['name']; $ext = strtolower(substr($name, -4, strlen($name))); if($ext == '.jpg') { move_uploaded_file($tmp_name, $name); echo "<img src=\"$name\"/>"; } else { echo "Ugyldig filtype"; } ?>


Laste ned ppt "Filbehandling (Kapittel 8)"

Liknende presentasjoner


Annonser fra Google