Jak otworzyć plik w PHP i edytować go od odpowiedniej linijki i znaku?


(sajmon17099) #1

Załóżmy że mam plik tekst.txt

Zawartość pliku tekst.txt to:

 

  1. tekst
  2. tekst
  3. tekst
  4. edycja: *
  5. tekst
  6. tekst

 

Wiem, że aby otworzyć plik w php należy użyć fopen() i fread(), ale zawsze plik otwiera mi się tak, że edytuję koniec pliku gdzie nie jest nic już zapisane, a chciałbym edytować go od momentu zaznaczonego znakiem * (tego znaku nie ma w tekście, po prostu użyłem go żeby pokazać skąd chcę zacząć edycję tekstu, w tekście nie ma też numeracji, po prostu zrobiłem tę numerację by były zaznaczone linijki tekstu).


(Pablo_Wawa) #2

Doprecyzuj, co u Ciebie znaczy “edytować plik”, bo w PHP nie ma do tego stosownych funkcji, możesz tylko odczytywać i zapisywać dane z/do pliku (binarnego lub tekstowego).

Do ustawienia wskaźnika pliku na danej pozycji użyj funkcji fseek, aby się dowiedzieć jaka jest obecnie wartość wskaźnika pliku użyj funkcji ftell.

Musisz pamiętać, że jak zaczniesz pisać do pliku od danego miejsca, to utracisz wszystko co jest w nim od tego miejsca (czyli jak chcesz coś zmienić w środku, musisz doczytać jego dalszą zawartość do pamięci i potem ją zapisać za zmienianym fragmentem).

 

PS. I oczywiście otwieraj taki plik przez fopen w trybie ‘r+’.