Operacje wejścia/wyjścia na plikach

Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 2443 razy

Otwieranie pliku za pomocą funkcji fopen

Za pomocą funkcji fopen można otworzyć plik w kilku różnych trybach:

Przykład otwarcia pliku:

<?php $file = $fopen("file_name.txt", "a+"); // otwieranie do odczytu i zapisu ?>

Wczytywanie danych linia po linii

W celu wczytania pojedynczej linii pliku należy skorzystać z funkcji fgets, oto przykład wczytania pojedynczej linii pliku:

<?php $file = fopen("file_name.txt", "r"); echo(fgets($file)); ?>

Możliwe jest również wczytanie całego pliku linia po linii z użyciem funkcji feof:

<?php $file = fopen("file_name.txt", "r"); while(!feof($file)){ echo(fgets($file)); } ?>

Wczytywanie pliku znak po znaku

Istnieje również funkcja fgetc, która umożliwia wczytanie pojedynczego znaku pliku:

<?php $file = fopen("file_name.txt", "r"); while(!feof($file)){ echo(fgetc($file)); } ?>

Wczytywanie całej zawartości pliku

Cały plik można wczytać do zmiennej korzystając z funkcji fread:

<?php $file = fopen("file_name.txt", "r"); echo(fread($file)); ?>

Zapis do pliku

Za pomocą funkcji fwrite możliwe jest zapisanie danych do pliku:

<?php $file = fopen("file_name.txt", "w"); $data = "Some data to save in file"; fwrite($file, $data); ?>

Zamykanie pliku

We wszystkich powyższych plikach brakuje tylko zamknięcia pliku za pomocą funkcji fclose:

fclose($file);

Zmiana położenia wskaźnika pliku

Czasami zachodzi konieczność zmiany położenia wskaźnika pliku. W tym celu należy posłużyć się funkcją fseek, która przyjmuje trzy parametry:

Przykład:

<?php $file = fopen("file_name.txt", "w"); $data = "Some data to save in file"; fwrite($file, $data); $data = "Some data to save in file 2n"; fseek($file, 0); // ustawia położenie wskaźnika pliku na jego początek fwrite($file, $data); fclose($file); ?>

Pozyskiwanie bieżącej pozycji wskaźnika pliku

Za pomocą funkcji ftell możliwe jest ustalenie położenie wskaźnika pliku:

<?php $file = fopen("file_name.txt", "w"); $data = "Some data to save in file"; fwrite($file, $data); $data = "Some data to save in file 2n"; fseek($file, 0); // ustawia położenie wskaźnika pliku na jego początek echo(ftell($file)); // wyświetla położenie wskaźnika pliku fwrite($file, $data); fclose($file); ?>