1 Востаннє редагувалося Betterthanyou (21.08.2020 15:08:06)

Тема: Заміна рядка у файлі

Якщо файл дуже великий (40+мб), і в ньому потрібно замінити лише один рядок, можна це зробити без перезаписування ?

Зараз скрипт працює так
Отримується вміст файлу file_get_contents
йде заміна рядка str_replace
і збереження файлу file_put_contents.

Чи можна файл не перезаписувати, а модифікувати ?

2

Re: Заміна рядка у файлі

open read tell seek write flush close

Подякували: Betterthanyou, leofun012

3

Re: Заміна рядка у файлі

koala написав:

open read tell seek write flush close

Ідеально, якщо рядок замінюється рядком такої ж довжини — тоді можна й так. А якщо заміна менша чи, ще гірше, більша — це ж доведеться подібним чином решту файлу до кінця переписувати, що інколи не набагато краще, ніж просто переписати увесь файл. (Я так розумію, заміна зайвої частини рядка символамим DEL — анахронізм часів перфокартного вводу?). Чи існує якийсь простіший спосіб зсуву частини файлу?

Подякували: koala, Betterthanyou, leofun013

4

Re: Заміна рядка у файлі

Так, це працює лише для шматків однакової довжини.
Наскільки мені відомо, поширені ФС не підтримують подібних фокусів, тобто треба або лізти "під капот", або шукати іншу ФС.

Подякували: P.Y., leofun012