PHP kodgimnazija.bdcentral.net/korisnik/cetvrti/informatika/2p/novo/19.pdf · Čitanje datoteke...

Preview:

Citation preview

PHP kod

Ugrađene funkcije u php-u

fopen() – otvara datoteku

fclose() – zatvara datoteku

Primjer – pokazuje kako se može najprije otvariti

datoteka "test.txt" za čitanje, zatim izvršavati neke

naredbe i zatvoriti datoteku:

<?php

$file = fopen("c:\test.txt","r");

//naredbe koje treba izvršiti

fclose($file);

?>

Fajl test.txt kreiran u Notepad-u

Rukovanje datotekama

Za otvaranje datoteke koristi se funkcija fopen().

fopen("naziv_datoteke", "mod_otvaranja")

Prvi parametar je ime fajla koji se otvara a drugi parametar definiše metodu otvaranja:

<?php

$file=fopen("c:\test.txt","r");

?>

Metode otvaranja datoteka

metod opis

r Čitanje, od početka datoteke.

r+ Čitanje i pisanje, počinje od početka datoteke.

w Samo pisanje, prepisuje sadržaj datoteke ako postoji.

w+ Čitanje i pisanje, Read/Write prepisuje sadržaj datoteke ako postoji.

a Dodavanje, otvara i piše na kraj datoteke, ili kreira novu ako ne postoji.

a+ Čitanje i dodavanje, dodaje novi sadržaj na kraj datoteke.

x Samo pisanje. Kreira novu datoteku. Vrada False i grešku ako ved postoji.

x+ Čitanje i pisanje. Kreira novu datoteku. Vrada False i grešku ako ved postoji.

Postoji više načina otvaranja fajla

<?php

$a = fopen("/home/file/test.txt", "r");

$b = fopen(" test.gif", "w");

$c = fopen("http://www.gimnazija.com/", "r");

$d = fopen("ftp://user:password@gimnazija.com/ test.txt",

"w");

?>

Primjer:

Otvori fajl, u slučaju da ne postoji, prikazati poruku.

<?php

$file=fopen(" c:\ test.txt","r")

or

exit("Ne mogu otvoriti datoteku!");

?>

file_get_contents() je ista kao i fread () ili fopen()

<?php

$file = file_get_contents ('C:\Users\Jasna\Desktop\test.txt');

echo $file;

?>

Provjera da li je kraj datoteke – feof()

Za provjeru da li se stiglo do kraja datoteke (eng. end of file - EOF) koristi se funkcija feof()

Korisna je ako treba učitavati podatke za koje ne znamo koliko ih ima, pa ih treba učitavati sve dok se ne dostigne kraj datoteke.

Napomena: Nije mogude čitati datoteke otvorene u modu: w i x (samo pisanje)!

Primjer:

if (feof($file)) echo "Kraj datoteke";

<?php

$file = "C:\Users\Jasna\Desktop\test.txt";

$a = fopen($file, 'r');

while (!feof($a))

{

$b = fread($a, 25); //čitaj samo prvih 25 karaktera

print $b;

print "<p>"; // prazan red

}

fclose($b);

?>

Čitanje datoteke liniju po liniju– fgets()

Za čitanje iz datoteke liniju po liniju koristi se funkcija fgets(). Nakon poziva ove funkcije, pokazivač se automatski premješta na početak nove linije u datoteci.

Primjer - čita liniju po liniju sve do kraja datoteke: <?php $file = fopen("test.txt", "r") or exit("ne mogu otvoriti fajl!"); while(!feof($file)) //Prikaz linije sve do kraja datoteke { echo fgets($file). "<br />"; } fclose($file); ?>

<?php

$a = "C:\Users\Jasna\Desktop\test.txt";

$b = fopen($a, 'r');

while (!feof($b))

{

$d = fgets($b, 256);

print $d;

print "<p>"; //ispisuje prazan red

}

fclose($b);

?>

Ispis na ekran

Čitanje datoteke znak po znak -fgetc() Za čitanje podataka iz datoteke znak po znak, koristi se funkcija

fgetc(). Nakon poziva ove funkcije, pokazivač se automatski premješta na početak nove linije u datoteci.

Primjer -čita znak po znak sve do kraja datoteke:

<?php

$file = fopen("test.txt", "r")

or exit("Ne mogu otvoriti datoteku!");

while(!feof($file)) //Prikaz znakova sve do kraja datoteke

{

echo fgetc($file);

}

fclose($file);

?>

Upis u datoteku -fwrite()

Za upis u neku datoteku koristi se funkcija fwrite().

Funkcija vrada broj bajt-ova podataka koji je upisan.

fwrite(file,string,length)

File – naziv datoteke.

String – naziv varijable čija se vrijednost upisuje u datoteku.

Length – maksimalni broj bajt-ova podataka koji de se upisati (nije obavezno navesti).Maksimalan broj bitova je 8192.

Napomena: da bi se moglo pisati u datoteku, ona mora biti prethodno otvorena.

Primjer upisa u datoteku

<?php

$file = fopen("test.txt","w");

echo fwrite($file, "Sretan pocetak rada!");

fclose($file);

?>

Ispis fajla liniju po liniju

<?php

$file = "C:\Users\Jasna\Desktop\test.txt";

$a = fopen($file, 'r');

$b = fread($a, 10);

$pitanje = file('test.txt');

foreach ($pitanje as $pitanje => $line)

{

print "<font color=red>pitanje broj {$pitanje}</font>:". $line ."<br />\n";

}

fclose($a);

?>

Ispis koda na ekran