Como append texto a um arquivo a 15 linhas acima do final

Estou tentando adicionar HTML a um arquivo usando fwrite() . Meu objective final é conseguir adicioná-lo 15 linhas acima do final do arquivo. Aqui está o que eu tenho até agora:

 <?php $file = fopen("index.html", "r+"); // Seek to the end fseek($file, SEEK_END, 0); // Get and save that position $filesize = ftell($file); // Seek to half the length of the file fseek($file, SEEK_SET, $filesize + 15); // Write your data $main = << 

Isso apenas evita replace a parte superior do arquivo. Obrigado.

O código de exemplo na pergunta não funciona com base em linhas, uma vez que você está trabalhando com o tamanho do arquivo (a menos que haja uma suposição sobre a definição de linhas na aplicação que não é mencionada aqui). Se você quiser trabalhar com linhas, então você precisará procurar novos caracteres de linha (que separa cada linha com a próxima).

Se o arquivo de destino não for um arquivo grande (para que possamos carregar todo o arquivo na memory), poderíamos usar o file() embutido PHP file() para ler todas as linhas do arquivo em uma matriz e, em seguida, inserir os dados após a 15º elemento. algo assim:

  15) { array_splice($lines, $num_lines - 15, 0, array($content)); file_put_contents($filename, implode('', $lines)); } else { file_put_contents($filename, PHP_EOL . $content, FILE_APPEND); }