$file=fopen("file.txt", "r"); /* otwiera plik file.txt do odczytu */
$file=fopen("file.txt", "w"); /* otwiera plik do zapisu. Jeżeli plik
nie istnieje, zostanie utworzony */
$file=fopen("ftp://adres.serwera/plik", "r"); /* otwiera plik przez
protokół ftp */
Po zakończeniu operacji na pliku, należy go zamknąć funkcją fclose, np:
$file=fopen("file.txt", "r");
fclose($file);
$znak=getc($file);
Jeśli funkcja napotka koniec pliku, zwróci wartość FALSE. Po odczytaniu znaku, pozycja w pliku jest przesuwana o 1 do przodu. Dzięki
temu, po kolejnym wywołaniu funkcji getc otrzymamy kolejny znak, a nie jeszcze raz ten sam.
Kolejną funkcją jest funkcja fgets:
$linia=fgets($file, $maxLen);
Drugi parametr określa ile znaków funkcja może odczytać. Trzecią funkcją do odczytu z pliku jest fread. Działa ona podobnie do fgets,
z tym że nie przerywa czytania gdy natrafi na znak nowej lini.
fwrite($file, $tekst, $maxLen);
Funkcja ta zapisuje tekst podany jako 2 parametr do pliku identyfikowanego przez $file. 3 parametr jest opcjonalny i określa maksymalną
długość tekstu, jaka może zostać zapisana. Jest jeszcze funkcja fputs, ale działa ona dokładnie tak samo. W PHP często występują identyczne
funkcje pod innymi nazwami - ułatwia to życie osobom przyzwyczajonym do innych języków.
flock($file, mode);
Pierwszy argument funkcji flock to identyfikator otwartego pliku. Argument mode określa typ dostępu, jaki chcemy uzyskać. Może mieć następujące wartości:
$file1=fopen("jakis.plik", "r"); /* otwiera 2 razy ten sam plik */
$file2=fopen("jakis.plik", "r");
flock($file1, 2); /* blokuje pierwszą kopie */
if(flock($file2, 6)) /* funkcja flock zwróci false, ponieważ plik */
{ /* jest już zablokowany */
echo("Plik nie zablokowany");
}else{
echo("Plik zablokowany");
}
flock($file, 3); /* odblokowuje plik */
if(file_exists("counter.n")) /* sprawdza, czy plik istnieje */
{
$file=fopen("counter.n", "r"); /* otwiera plik */
flock($file, 1); /* blokuje plik */
$ile=fgets($file, 100); /* odczytuje wartość */
flock($file, 3); /* odblokowuje plik */
fclose($file); /* zamyka plik */
$ile++; /* zwiększa wartość o 1 */
}
else
$ile=1; /* jeśli plik nie istnieje, wyświetli się 1 */
$file=fopen("counter.n", "w"); /* otwiera plik do zapisu */
flock($file, 2); /* blokuje do zapisu */
fwrite($file, $ile); /* zapisuje wartość */
flock($file, 3); /* odblokowuje plik */
fclose($file); /* zamyka plik */
echo($ile); /* wyświetla wartość */
Ten skrypt odczytuje z pliku wartość, zwiększa ją o 1, a następnie wyświetla na stronie. Jeżeli plik counter.n nie istnieje, skrypt spróbuje go utworzyć. Ten licznik zwiększy się za każdym razem gry użytkownik wejdzie na stronę, lub ją odświeży. Licznik odporny na odświeżanie pokaże w części 5.