ОБНОВЛЕНИЕ: Как обнаружил OP, ob_gzhandler()
может иметь дело с такого рода вариантами использования, и это не плохой путь.
ОРИГИНАЛЬНЫЙ ОТВЕТ: Вполне вероятно, что даже если вам удастся как-то выполнить эту работу, это приведет к более низкой производительности, чем просто наличие файла в виде простого текстового файла в вашей файловой системе.
Если вы хотите использовать сжатие gzip, попросите Apache сделать это с помощью mod_deflate. Храните ваш файл без сжатия. Apache решит проблему сжатия.
Но прежде чем вы начнете сталкиваться с какими-либо проблемами при настройке: насколько большим может быть этот файл? Если это не очень большой HTML-файл, издержки, связанные с необходимостью распаковывать файл при каждой транзакции, вероятно, перевешивают выгоду от фактического сжатия. Вы действительно увидите преимущество только с очень большими файлами HTML, и эти файлы, вероятно, приведут к тому, что браузер в любом случае остановится.
Все это говорит о том, что вы можете использовать gzdecode()
, чтобы распаковать файл, но тогда вы не подаете статический файл - вы запускаете его через PHP перед его обслуживанием. Опять же, для этого варианта использования лучше всего подавать простой HTML, а не возиться со сжатием.