Odczyt i zapis plików tekstowych

Odczyt i zapis plików tekstowych w PHP umożliwia przechowywanie danych poza bazą (np. w formacie .txt czy .log) i ich późniejsze przetwarzanie. Kluczowe funkcje to fopen, fread, fwrite czy file_get_contents. Warto pamiętać o uprawnieniach do zapisu w wybranym folderze.


Podstawowe funkcje do obsługi plików tekstowych

  • fopen($sciezka, $tryb)
    • Otwiera plik w wybranym trybie (np. 'r' do odczytu, 'w' do zapisu, 'a' do dopisywania).
    • Zwraca uchwyt (tzw. resource) do późniejszych operacji.
  • fread($uchwyt, $dlugosc)
    • Czyta wskazaną liczbę bajtów z otwartego pliku.
    • Przydatne w pętli lub do jednorazowego zczytania zawartości.
  • fwrite($uchwyt, $dane)
    • Zapisuje dane do otwartego pliku (o ile tryb na to pozwala, np. 'w', 'a').
  • file_get_contents($sciezka) i file_put_contents($sciezka, $dane)
    • Skrócone funkcje do prostego odczytu i zapisu całego pliku naraz.
Przykład
<?php
$plik = "dane.txt";

// Zapis (fwrite)
$fp = fopen($plik, "w");
if ($fp) {
  fwrite($fp, "Pierwsza linia\nDruga linia\n");
  fclose($fp);
  echo "<p>Zapisano dane do pliku: $plik</p>";
} else {
  echo "<p>Nie udało się otworzyć pliku do zapisu.</p>";
}

// Odczyt (fread)
if (file_exists($plik)) {
  $fp2 = fopen($plik, "r");
  if ($fp2) {
    $zawartosc = fread($fp2, filesize($plik));
    fclose($fp2);
    echo "<p>Zawartość pliku:</p><pre>$zawartosc</pre>";
  } else {
    echo "<p>Nie udało się otworzyć pliku do odczytu.</p>";
  }
}
?>
Zwrócona zawartość
Zapisano dane do pliku: dane.txt
Zawartość pliku:
Pierwsza linia
Druga linia

Przykładowe zastosowania odczytu i zapisu plików

  • Proste logi
    • Zapis zdarzeń (np. odwiedziny stron) do pliku .log zamiast bazy danych.
  • Tworzenie kopii zapasowych
    • Eksport danych do pliku tekstowego, który można potem wgrać ponownie.
  • Generowanie raportów
    • Tworzenie plików .txt lub .csv z wynikami zapytań z bazy i udostępnianie do pobrania.

Podsumowanie

  • Funkcje fopen, fread, fwrite dają elastyczność w pracy z plikami, ale wymagają obsługi uchwytów.
  • file_get_contents i file_put_contents to prostsza alternatywa do czytania/zapisywania całego pliku jednorazowo.
  • Pamiętaj o prawach do zapisu w folderze oraz o zabezpieczeniach (dostęp, niejawne katalogi itp.).
  • Pliki tekstowe są przydatne do tworzenia logów, raportów czy niewielkich zbiorów danych bez konieczności sięgania do bazy.