Как наиболее эффективно отдать контент xml-файла с заменой данных?
Доброй ночи.
Встала задача при запросе открыть большой (от 20mb до бесконечности) xml-файл, поменять в нем некоторые атрибуты и отдать сырым потоком для загрузки, ничего не записывая на сервер. Пока читаю при помощи XML Reader, собираю в процессе все как простой текст с нуля, и отдаю в виде одной огромной переменной. Но, во-первых, это не кажется мне красивым, а во-вторых, файлы могут быть неограниченного размера, и хранить весь собираемый по ходу потокового их чтения контент в одной переменной не кажется мне хорошим вариантом.
Как бы поступили вы в данной ситуации?..
Запомните.
Если размер предполагается больше "нормального", то всегда читаем и пишем по блокам!
Это самый простой вариант. "Сложный" - двигаться смещением по файлу.
Если вы не записываете на диск, то файл размещается в памяти.
ПХП регулируется конфигурацией. Т.е. что будет тогда, когда в конфигурации указано (к примеру) 4 мб, а файл у вас 80мб. Будем свопиться?
Посему блоками фигачим и не паримся.
А! Ну и отдаем же так же блоками.