Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: funkcja fgets
Forum PHP.pl > Forum > PHP
blackroger
Funkcja fgets pobiera (powiedzmy z pliku tekstowego) po jednej linii i ustawia wskaźnik na początku drugiej. Mam pytanie jak zrobić, żeby powiedzmy po pobraniu linii, sprawdzeniu jakiegoś tam warunku i jeżeli ten warunek będzie niespełniony ustawić wskaźnik jeszcze raz na początku tej samej linii? Wiem, że są te wszystkie rewindy i fseeki ale mi chodzi o to czy jest jakaś w miarę prosta możliwość na cofnięcie wskaźnika o jeden wiersz(taki fgets wstecz)? Tylko nie chce rozwiązań w stylu zliczania znaków w linii i potem odczytywania ich od początku.
erix
Cytat
Wiem, że są te wszystkie rewindy i fseeki ale mi chodzi o to czy jest jakaś w miarę prosta możliwość na cofnięcie wskaźnika o jeden wiersz(taki fgets wstecz)?

A możesz powiedzieć, w jakim celu chcesz to zrobić?

Najprościej IMHO użyć przed fgets" title="Zobacz w manualu PHP" target="_manual wartości zwracanej przez ftell" title="Zobacz w manualu PHP" target="_manual. Potem zapisaną w zmiennej wartość ustawiasz via fseek" title="Zobacz w manualu PHP" target="_manual.
blinki
albo proscie na chlopski rozum biggrin.gif
Kod
<?
$fp=fopen("jakisplik.txt", "r");
fget($fp);
if(warunek jest spelniony)
echo "jedziemy dalej";
else
fclose($fp)
 i cos tam dalej pomysl, moze nad tym
?>
ultra_18
Jak dla mnie prościej bedzie użyc funkcji http://pl.php.net/file ponieważ zapisuje plik do tablicy co ułatwia zadania ponieważ w przypadku spełnienia warunku cofany jest indeks do tyłu co w połaczaniu z przesuwająca sie pełtlą o 1 do przodu daje tą sama linijkę

  1. <?php
  2. $plik = 'plik.txt';
  3.  
  4. $tresc = file($plik);
  5.  
  6. for($i=0;$i<count($tresc);$i++){
  7.  
  8. if(warunek ... ){
  9. $i--;
  10. }
  11. }
  12. ?>
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.