Здравствуйте, подскажите пожалуйста, как реализовать:
Требуется отдать несколько файлов с сервера(с помощью PHP), но перед отправкой необходимо в каждом файле изменить значение (дата и время), которое прописано почти в конце (примерно 1000 байт до конца) каждого файла.
Если открывать файлы с помощью file_get_contents находить в нем (с помощью регулярного выр-я) дату и перезаписывать ее, как потом открытый поток передать в readfile($file) не сохраняя модифицированный файл на сервере?
Или Реализовать с помощью fopen() и fwrite() , т.е. Открыть, Модифицировать, и передать на отправку в readfile($file).
P.S._1 При открытии файла с помощью file_get_contents или fopen(), я понимаю можно задать Отрицательное смещение, для того чтоб в конце файла "Быстрее" найти нужные данные для замены?
(так как если файл более 300Mb придется Долго искать строку с датой)
P.S._2 Если файл размером около 200Mb, и сразу несколько подключений к серверу, сработает такая конструкция ?
Само описание задачи говорит о том, что ее лучше не решать, а устранить.
Потому что отдача здоровенного файла, в котором постоянно меняется одно поле - явная дурь, которую лучше всего решать организационно: данные отдельно, дата и время загрузки - отдельно.
Если вы не в силах повлиять на что-либо, кроме своего сервера, можно совершить обходной маневр: забить в крон задачу, которая подменяет этот файл "свежим" с актуальным временем, скажем, каждые 5 минут. И отдавать его таки статикой.