Wyświetlanie numeru linii i tekstu z pliku TXT w PHP

Cześć! Dziś zajmiemy się prostym, ale bardzo przydatnym zagadnieniem w PHP, jakim jest wyświetlanie numeru linii oraz tekstu z pliku .txt. Jeśli kiedykolwiek musiałeś przetwarzać pliki tekstowe w swoich projektach lub po prostu chcesz poznać, jak działa odczyt plików w PHP, to ten artykuł jest właśnie dla Ciebie.

W tym artykule przejdziemy przez cały proces, od podstawowych pojęć związanych z plikami tekstowymi, aż po kod PHP, który pozwoli wyświetlić numer linii oraz jej zawartość. Postaram się, aby było to jak najprostsze i zrozumiałe, więc bez zbędnego gadania – zaczynajmy!

Co to jest plik TXT i jak działa w PHP?

Plik TXT to najprostszy możliwy format pliku tekstowego. Zawiera on zwykły tekst, który jest zapisany bez żadnego specjalnego formatowania – po prostu ciąg znaków. Takie pliki są wykorzystywane w różnych aplikacjach, ponieważ są lekkie i łatwe do edytowania.

W PHP, pliki tekstowe można otworzyć, odczytać, zapisać lub edytować za pomocą różnych funkcji. Dwie najczęściej wykorzystywane funkcje to fopen() do otwierania plików i fgets() do odczytywania tekstu z tych plików linia po linii.

Jak to zrobić w PHP? Krok po kroku

Załóżmy, że mamy plik tekstowy o nazwie plik.txt, który wygląda mniej więcej tak:

Pierwsza linia tekstu
Druga linia tekstu
Trzecia linia tekstu
Czwarta linia tekstu

Chcemy napisać skrypt w PHP, który wyświetli numer linii oraz jej zawartość. Oto jak to zrobić:

1. Otwieranie pliku

Zaczniemy od otwarcia pliku do odczytu. W PHP używamy funkcji fopen(), która zwraca uchwyt do pliku, jeśli uda się go otworzyć, lub false w przypadku błędu.

$plik = fopen("plik.txt", "r");
if (!$plik) {
    die("Nie udało się otworzyć pliku!");
}

Tutaj fopen("plik.txt", "r") otwiera plik w trybie tylko do odczytu. Jeśli plik się nie otworzy (np. nie istnieje), to die() przerwie działanie skryptu i wyświetli odpowiedni komunikat.

2. Odczytywanie pliku linia po linii

Kiedy plik jest już otwarty, możemy odczytywać go linia po linii. Używamy do tego funkcji fgets(), która zwraca zawartość jednej linii lub false, jeśli osiągnięto koniec pliku.

$numerLinii = 1;  // Zaczynamy od 1, ponieważ chcemy wyświetlić numer linii
while (($linia = fgets($plik)) !== false) {
    echo "Linia {$numerLinii}: {$linia}<br>";
    $numerLinii++;  // Zwiększamy numer linii po każdej iteracji
}

Tutaj:

  • Zmienna $numerLinii będzie licznikiem, który zaczynamy od 1.
  • Funkcja fgets($plik) odczytuje jedną linię tekstu z pliku.
  • echo wyświetla numer linii oraz jej zawartość.
  • Po każdym odczytaniu linii zwiększamy zmienną $numerLinii, aby pokazać numer kolejnej linii.

3. Zamknięcie pliku

Po zakończeniu odczytu pliku ważne jest, aby zamknąć uchwyt do pliku. Robimy to za pomocą funkcji fclose():

fclose($plik);

To zakończy naszą pracę z plikiem i zwolni zasoby systemowe.

Kompletny kod PHP

Złączmy teraz wszystko w jeden kompletny skrypt:

<?php
// Otwieramy plik
$plik = fopen("plik.txt", "r");
if (!$plik) {
    die("Nie udało się otworzyć pliku!");
}

// Inicjujemy licznik numeru linii
$numerLinii = 1;

// Odczytujemy plik linia po linii
while (($linia = fgets($plik)) !== false) {
    echo "Linia {$numerLinii}: {$linia}<br>";
    $numerLinii++;
}

// Zamykamy plik
fclose($plik);
?>

Co możemy zrobić z tym kodem?

Ten kod jest bardzo podstawowy, ale już teraz daje nam możliwość:

  • Odczytania zawartości pliku linia po linii.
  • Wyświetlenia numeru linii obok jej treści.
  • Wykonania tej operacji na każdym pliku tekstowym, który mamy dostępny.

Możesz go rozbudować o dodatkowe funkcje, np. dodawanie warunków do przetwarzania tylko określonych linii, zapisywanie zmian do pliku, czy bardziej zaawansowane operacje na danych z pliku.

Rozbudowa funkcjonalności

A co, jeśli chciałbyś na przykład wyświetlić tylko linie, które zawierają określone słowo lub frazę? Możemy dołożyć prostą funkcję strpos(), aby sprawdzić, czy dany fragment tekstu występuje w każdej linii:

<?php
$plik = fopen("plik.txt", "r");
if (!$plik) {
    die("Nie udało się otworzyć pliku!");
}

$numerLinii = 1;
$szukanaFraza = "tekst"; // Słowo, które chcemy wyszukać

while (($linia = fgets($plik)) !== false) {
    if (strpos($linia, $szukanaFraza) !== false) {  // Sprawdzamy, czy fraza występuje w linii
        echo "Linia {$numerLinii}: {$linia}<br>";
    }
    $numerLinii++;
}

fclose($plik);
?>

W tym przypadku tylko linie zawierające frazę „tekst” zostaną wyświetlone.

Podsumowanie

Mamy nadzieję, że teraz masz jasny obraz tego, jak wyświetlać numer linii oraz tekst z pliku w PHP. W tym artykule:

  1. Otworzyliśmy plik tekstowy.
  2. Odczytaliśmy go linia po linii.
  3. Wyświetliliśmy numer każdej linii oraz jej zawartość.
  4. Na końcu zamknęliśmy plik.

Możesz teraz z powodzeniem implementować podobne funkcje w swoich projektach. Oczywiście, możliwości PHP w pracy z plikami tekstowymi są ogromne, więc zachęcam do eksperymentowania i rozszerzania kodu o dodatkowe funkcjonalności.

Pamiętaj, że praca z plikami może wiązać się z ryzykiem, np. jeśli plik jest bardzo duży, możesz napotkać problemy z wydajnością. W takich przypadkach warto rozważyć inne podejścia, np. odczyt pliku w strumieniach czy zastosowanie baz danych.

Szukasz taniego i dobrego hostingu dla swojej strony www? - Sprawdź Seohost.pl