PHP, ¿cuál es la mejor manera de escribir datos en la mitad del archivo sin volver a escribir el archivo?

Estoy trabajando con archivos de texto grandes en php (1GB +), estoy usando

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

Para obtener datos de la mitad del archivo, pero si quisiera cambiar los datos del archivo a un cambio diferente al de los datos originales, tendría que volver a escribir todo el archivo.

¿Cómo puedo cambiar los datos dentro del archivo (longitud variable) sin sobrescribir los datos si los datos son más grandes que el original? Mantengo un índice de los diferentes bloques de datos dentro del archivo y su ubicación de bytes. Parece que la única alternativa es dedicar x cantidad de bytes a cada parte de los datos y luego reescribir ese bloque si quisiera cambiarlo ... el problema con esto es que ocuparía mucho más espacio del necesario en solo bytes nulos, y llevaría más tiempo escribir ... y eso aún no resolvería cómo "eliminar" los datos, ya que el archivo nunca podría reducirse de tamaño ... Realmente necesito ayuda aquí ...

Si usé bloques prefijados para cada pieza de datos en el archivo, como 1 mb, entonces quería ingresar datos que solo eran100kb, esa entrada tomaría 10 veces el espacio real necesario, y la entrada nunca podría cambiarse a algo más de 1 mb de datos, ya que se sobrescribiría más del primer bloque dedicado ... eliminarlo no sería posible ... espero que esto haga que cualquier sentido ... No estoy buscando alternativas, busco escribir y cambiar datos en medio de archivos, jeje ...

ACTUALIZACIÓN: Sí, me gustaría reemplazar los datos antiguos, pero si los nuevos datos se extienden más que los datos antiguos, me gustaría que el resto de los datos se insertaran más en el archivo ...

Considere esto: 0000000HELLODATA00000000 los ceros representan un espacio vacío, nada ... ahora me gustaría reemplazar HOLA por ALGO, ahora que algo es más grande que hola, simplemente escribir en el punto de inicio de hola se extendería por hola y comenzaría a sobrescribir datos. Por lo tanto, me gustaría que los DATOS se insertaran en el archivo, para dejar espacio para ALGO sin sobrescribir los DATOS ... jeje

Respuestas a la pregunta(3)

Su respuesta a la pregunta