PHP Classes

File: process-css.php

Recommend this page to a friend!
  Classes of Camilo Sperberg   CSS Stacker and Compressor   process-css.php   Download  
File: process-css.php
Role: Example script
Content type: text/plain
Description: Usage examples
Class: CSS Stacker and Compressor
Compact several CSS files into a single file
Author: By
Last change: updated to v1.3
Date: 14 years ago
Size: 2,803 bytes
 

Contents

Class file image Download
<?php
$q
= $_SERVER['REQUEST_TIME'] + microtime();
$proc = TRUE;
// Include all involved files
include('config.php');
include(
'css.class.php');

// Creating object
$theCSS = new CSStacker();

// OPTIONAL: if you want to include a CSS reset, set this to true
// Otherwise, just comment it or delete it
$theCSS->resetCSS = TRUE;

// Add CSS's to the stack like this:
//$theCSS->add('xd.css');
$theCSS->add('css/lol.css');
//
// OR:
//
//$theCSS->add(array('narf.css','xd.css','css/rolfmao.css','css/lol.css'));
//
// OR:
//$loadThis[] = 'narf.css';
//$loadThis[] = 'lol.css';
//$theCSS->add($loadThis);


// Now let's print it, it accepts two parameters and three variables in the first parameter
// Possible variables in first parameter: "inline", "file" or "filename", defaults to file
$theCSS->printme();
// This will use the advanced built-in and this may output an 304 not modified header when
// the client already haves our CSS or it could just print-out the CSS.

//$theCSS->printme('inline');
// This will print an inline CSS. You can use this method inside your index instead of having it
// in a separate file, making it easier for you to build a CSS stack. However, be aware that the
// class will not be able to use compression or to use the 304 not modified header.

//$cssfile = $theCSS->printme('filename');
//if ($cssfile !== FALSE) echo $cssfile;
// This will only create the CSS cache file. If succesfull, it will return the cache file location
// If unsuccessfull, it will return a FALSE value.
// As with the inline printing, you can use this method within your index instead of having it
// in a separate file, making it easier for you to build a CSS stack. However, be aware that the
// class will not be able to use compression or to use the 304 not modified header.

// Now let's take a look at the second parameter.
// The only possible variable in the second parameter is "force". Defaults to FALSE.
// What this second parameter does, is to force the creation of a cache file, even if no
// modifications have been done to the separate CSS files.
//$theCSS->printme(any_of_the_above,'force');
// Please note that "any_of_the_above" must be replaced with "file", "filename" or "inline".

// OPTIONAL: in case of any error, let's log to a file:
if(isset($CSSErrors)) {
 
$fp = fopen(CACHE_LOCATION.'css-problems.log','a');
  foreach(
$CSSErrors AS $e)
   
fwrite($fp,$e['type'].' -- '.$e['errm']."\n");
 
fclose($fp);
  unset(
$CSSErrors);
}
unset(
$theCSS);

// OPTIONAL: let's log the time it took to create the object and do all the work.
file_put_contents(CACHE_LOCATION.'css-problems.log','Generated/processed all the CSS\'s in '.number_format((time()+microtime()) - $q,5,',','.').' seconds'."\n",FILE_APPEND);
?>