Denisov80
@Denisov80
Юный Программист

Как Изменить файл перед отдачей с сервера?

Здравствуйте, подскажите пожалуйста, как реализовать:

Требуется отдать несколько файлов с сервера(с помощью PHP), но перед отправкой необходимо в каждом файле изменить значение (дата и время), которое прописано почти в конце (примерно 1000 байт до конца) каждого файла.

Если открывать файлы с помощью file_get_contents находить в нем (с помощью регулярного выр-я) дату и перезаписывать ее, как потом открытый поток передать в readfile($file) не сохраняя модифицированный файл на сервере?

Или Реализовать с помощью fopen() и fwrite() , т.е. Открыть, Модифицировать, и передать на отправку в readfile($file).

P.S._1 При открытии файла с помощью file_get_contents или fopen(), я понимаю можно задать Отрицательное смещение, для того чтоб в конце файла "Быстрее" найти нужные данные для замены?
(так как если файл более 300Mb придется Долго искать строку с датой)

P.S._2 Если файл размером около 200Mb, и сразу несколько подключений к серверу, сработает такая конструкция ?
  • Вопрос задан
  • 78 просмотров
Пригласить эксперта
Ответы на вопрос 1
Adamos
@Adamos
Само описание задачи говорит о том, что ее лучше не решать, а устранить.
Потому что отдача здоровенного файла, в котором постоянно меняется одно поле - явная дурь, которую лучше всего решать организационно: данные отдельно, дата и время загрузки - отдельно.

Если вы не в силах повлиять на что-либо, кроме своего сервера, можно совершить обходной маневр: забить в крон задачу, которая подменяет этот файл "свежим" с актуальным временем, скажем, каждые 5 минут. И отдавать его таки статикой.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы