Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jedna linia z pliku
Forum PHP.pl > Forum > PHP
daniel1302
Witam, mam pytanie.
Chciałbym odczytać jedną linię z pliku tekstowego i na jej końcu ustawić wskaźnik.
Czy jest to możliwe bez sprawdzania każdej linii po koleji?


Chodzi mi o to, aby ustawić wskaźnik za linią o zawartości
linia testowa.
Blame
Mi, niezbyt zaawansowanemu programiście przychodzi tylko jedno rozwiązanie do głowy, niestety trzeba będzie przy nim sprawdzać każdą linijkę pliku.
Otóż, najpierw wczytujemy plik do tablicy za pomocą file. Potem przechodzimy każdą linijkę za pomocą foreach i sprawdzamy czy to właśnie ta której szukamy dzięki preg_match, kiedy zwróci coś innego niż FALSE to znaleźliśmy. Następnie nadpisujemy daną linijkę, potem implode i file_put_contents.
pyro
  1. $file = 'file.txt';
  2. $handler = fopen($file, 'r+');
  3. fgets($handler);
  4. // teraz wskaźnik jest na koncu lini
Pilsener
  1. $uchwyt = fopen('plik.txt','r'); //otwieramy plik
  2. while(!feof($uchwyt)){ //parsujemy plik szukając wybranej linii
  3. $linia = rtrim(fgets($uchwyt));
  4. if($linia == 'testowa linia'){ //przerywamy pętle po znalezieniu szukanej linii
  5. break;
  6. }
  7. }
- wskaźnik jest umieszczony za znalezioną linią. Jeśli to ma być pierwsza linia, to nie trzeba używać pętli. Pozycję wskaźnika odczytasz funkcją ftell.

Nie da się znaleźć wybranej linii bez sprawdzania wszystkich linii po kolei.
daniel1302
Dzięki mam zrobione tj Blame proponował ale chciałem się upewnić, że nie obejdzie się bez pętli
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.