PHP co jest najlepszym sposobem zapisu danych do środka pliku bez przepisywania pliku

Pracuję z dużymi plikami tekstowymi w php (1GB +), używam

file_get_contents("file.txt", NULL, NULL, 100000000,100); 

Aby uzyskać dane ze środka pliku, ale jeśli chciałbym zmienić dane w pliku na coś, co ma inną zmianę niż dane pierwotne, musiałbym ponownie zapisać cały plik.

Jak mogę zmienić dane w pliku (zmienna długość) bez nadpisywania danych, jeśli dane są większe niż oryginał? Zachowuję indeks różnych bloków danych w pliku i ich położenie bajtowe. Wydaje się, że jedyną alternatywą jest przeznaczenie x ilości bajtów na każdy fragment danych, a następnie przepisanie tego bloku, jeśli chciałbym go zmienić ... problem z tym polega na tym, że zajęłoby to znacznie więcej miejsca niż potrzeba tylko w null bajtów, a napisanie zajęłoby więcej czasu ... a to nadal nie rozwiązałoby problemu „usuwania” danych, ponieważ plik nigdy nie zmniejszyłby się ... Naprawdę potrzebuję pomocy tutaj ...

Jeśli użyłem prefiksowanych bloków dla każdego fragmentu danych w pliku, np. 1 MB, chciałem wprowadzić dane, które były tylko100kb, wpis ten zajmie 10x rzeczywistej potrzebnej przestrzeni, a wpis nigdy nie mógłby zostać zmieniony na coś więcej niż 1mb danych, ponieważ nadpisałby więcej niż pierwszy dedykowany blok ... usunięcie go nie byłoby możliwe ... mam nadzieję, że to zrobi sens ... Nie szukam alternatyw, szukam pisać i zmieniać dane w środku plików, hehe ...

AKTUALIZACJA: Tak, chciałbym zastąpić stare dane, ale jeśli nowe dane rozciągną się bardziej niż stare dane, chciałbym, aby reszta danych została wrzucona dalej do pliku ...

rozważ to: 0000000HELLODATA00000000 zera reprezentują pustą przestrzeń, nic ... teraz chciałbym zastąpić HELLO SOMETHING, teraz, ponieważ coś jest większe niż hello, po prostu wpisanie w punkcie początkowym hello rozszerzy bylo hello i zacznie nadpisywać dane. . Dlatego chciałbym, aby DANE były przesyłane dalej do pliku, aby zrobić miejsce dla COŚ bez nadpisywania DANYCH ... hehe

questionAnswers(3)

yourAnswerToTheQuestion