Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobieranie konkretnej lini z plikow txt
Forum PHP.pl > Forum > Przedszkole
Legro
Witam,

mam plik baza.txt i w nim takie dane (numerki obok wartosci to numery linii)

01 imie
02 nazwisko
03 wiek
04 miasto
05 tel

i chcialbym pobrac z tego pliku linijke 3, aby zedytowac wiek... wiem jak otworzyc plik jak uzyc flock. do pobierania danych sluzy fread ale jaki parametr dodac zeby pobrac konkretna linie? w manualu nic ciekawego n.t nie pisze :/
lopik
Ładujesz plik do tablicy

$tablica = file("baza.txt");

I pobierasz dany element z tablicy.

$tablica[2] gdzie 2 to trzeci element tablicy licząc od 0. czyli linia w pliku "wiek"
Legro
Ok dzięki, a jak teraz cos zapisac do konkretnej linii?

nikt nie wie? czyli to jednak nie jest proste
wipo
array_push i array_pop popatrz
skowron-line
array_pop to akurat usuwanie z tablicy i to jeszcze z konca
a array_push to dodawanie ale tez na koniec a nie tak jak kolega chce na okreslone miejsce
Legro
Cytat
array_push i array_pop popatrz


Cytat
array_pop to akurat usuwanie z tablicy i to jeszcze z konca
a array_push to dodawanie ale tez na koniec a nie tak jak kolega chce na okreslone miejsce


Koledzy winksmiley.jpg ja chce do pliku a nie tablicy... winksmiley.jpg
wipo
Ale najpierw trzeba dodać na koniec a potem zamieniać miejscami.
Przynajmniej mi nic innego nie przychodzi do głowy
Legro
tz. jak?
wipo
Taki przykład
Kod

$tablica=array(1,2,3,4,5,6,8,9);

//wpisauje na miesce gdzie powinno byc 7

array_push($tablica,7);
for($x=8;$x>6;$x--){
     $temp=$tablica[$x];
     $tablica[$x]=$tablica[$x-1];
     $tablica[$x-1]=$temp;
}

print_r($tablica);
Legro
a jak zrobic na txt bez tablic?
wipo
To wczytaj plik do zmiennej
Kod
$plik=fopen("nazwa.pliku.txt","r+");
while(!feof($plik))
   $calosc=fgets($plik,4096);
fclose($plik);

Odnajdz miejsce gdzie chcesz coś wpisać

I zapisz plik ponownie
Kod
$plik=fopen("nazwa.pliku.txt","w+");
fputs($plik,$calosc);
fclose($plik);
Legro
ale ten kod twoj co pobiera dana linijke jest nieergonomiczny :/
jezeli bede miec plik txt i w nim okolo 200 linijek i bede chcial wszystkie edytowac to nie wyrobie z pisaniem kodu.. musi chyba byc jakas funckja ktora pobiera dana linijke ... tz. pobeira linijke i edytuje ja ;/
wipo
Spróbuj użyć fseek
Może to będzie odpowiedź na twoje pytanie
Legro
ok skorzystalem z ftell i rewind... dzieki narazie winksmiley.jpg
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.