Autor podstrony: Krzysztof Zajączkowski

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

Otwieranie pliku za pomocą funkcji fopen

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

  • r - tylko do odczytu, wskaźnik pliku ustawiony jest na początku pliku;
  • w - tylko do zapisu. Usuwa zawartość pliku lub tworzy nowy jeżeli ten nie istnieje;
  • a - otwiera tylko do zapisu z zachowaniem danych w nim zawartych. Wskaźnik pliku jest ustawiony na jego końcu a plik w przypadku, gdy nie istnieje zostanie utworzony;
  • x - tworzy plik tylko do zapisu, zwraca FALSE, gdy plik już istnieje;
  • r+ - otwiera do odczytu i zapisu. Wskaźnik pliku zaczyna się na jego początku;
  • w+ - otwiera plik do odczytu i zapisu. Usuwa zawartość pliku lub tworzy nowy, jeżeli ten nie istniał;
  • a+ - otwiera plik do odczytu i zapisu. Dane w pliku (jeżeli ten istniał) zostaną zachowane a wskaźnik pliku ustawiony jest na jego koniec. Tworzy nowy plik, jeżeli ten nie istniał wcześniej;
  • x+ - otwiera plik do odczytu i zapisu. Zwraca fałsz, gdy ten już istnieje.

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:

  • uchwyt pliku;
  • przesunięcie wskaźnika;
  • określenie punktu, względem którego przesunięcie zostanie ustawione. Możliwe ustawienia to:
    • SEEK_SET - ustawia położenie względem początku pliku (domyślnie ustawione);
    • SEEK_CUR - ustawia położenie względem obecnej pozycji wskaźnika pliku;
    • SEEK_END - ustawia położenie względem końca pliku

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); ?>
Layout wykonany przez autora strony, wszelkie prawa zastrzeżone. Jakiekolwiek użycie części lub całości grafik znajdujących się na tej stronie bez pisemnej zgody jej autora surowo zabronione.