I created a style.css.php file with this code:
<?php
$gzip = (ob_get_length() === false && !ini_get("zlib.output_compression") && ini_get("output_handler") != "ob_gzhandler" && extension_loaded("zlib") && substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') && !headers_sent());
if(!$gzip) header('Location: style.css');
header('Content-type: text/css');
header('Cache-Control: no-cache');
header('Expires: Mon, 1 Jan 1901 04:20:00 GMT');
ob_start('ob_gzhandler');
include "style.css";
?>
What do you think? Is this a good way to compress js/css files? Is there a better way to do this?
I’m doing this for a public app. that can be downloaded by anyone. So there will be people on shared hosts with gzip disabled
No, not OK. There’s a lot of things wrong there. The include, no dying after redirecting, not considering the deflate method, …
This is very simple to do with PHP, as the zlib output handler automatically detects the appropriate compression to send to the client (if any); all you have to do is enable it: