コード例 #1
0
     //css_cleaner
     if (!has('p')) {
         err('Please, indicate the project source path. Multiple paths can be concatenated using ' . PATH_SEPARATOR);
         exit(1);
     }
     $cleaner = new css_cleaner();
     $cleaner->verbose = true;
     $cleaner->project_files = explode(PATH_SEPARATOR, $opts['p']);
     $cleaner->method = get('m', 'safe') == 'safe' ? css_cleaner::METHOD_SAFE : css_cleaner::METHOD_BEST_CLEAN;
     if (has('e')) {
         $cleaner->extensions = get('e');
     }
     if (has('r')) {
         $cleaner->report_path = get('r');
     }
     $cleaner->clean($css_doc);
 }
 //Optimize
 $optimizer = new css_optimizer();
 $optimizer->compress = get('c', true);
 $optimizer->optimize = get('o', true);
 $optimizer->prefixes = get('v', 'webkit,msie,firefox');
 $optimizer->process($css_doc);
 //Generate output
 $out = $css_doc->render($optimizer->compress);
 //Save output
 if (!($fout = array_shift($argv))) {
     echo $out;
 } else {
     //Show stats
     echo 'Optimized in ' . ReadableTime(microtime(true) - $start) . "\n";
コード例 #2
0
ファイル: cleaner.php プロジェクト: ideatic/css-optimizer
function do_optimization()
{
    $settings = array();
    $cleaner = new css_cleaner();
    foreach (array('method', 'compress') as $prop) {
        $settings[$prop] = isset($_POST[$prop]) ? $_POST[$prop] : (isset($cleaner->{$prop}) ? $cleaner->{$prop} : false);
        $cleaner->{$prop} = $settings[$prop];
    }
    $result = array();
    $result['settings'] = $settings;
    if (!empty($_POST['source'])) {
        $cleaner->verbose = true;
        $cleaner->project_files[] = dirname(__FILE__);
        $result['source'] = $_POST['source'];
        $parser = new css_parser();
        //Clean CSS
        ob_start();
        $start = microtime(true);
        $result['css'] = $cleaner->clean($parser->parse($result['source']))->render($settings['compress']);
        $result['execution_time'] = microtime(true) - $start;
        $result['output'] = ob_get_clean();
    }
    return $result;
}