]*>)@i' ,'$1' ,$textIn ); } $sourceSpec['content'] = $textIn; $sourceSpec['id'] = 'foo'; if (isset($_POST['minJs'])) { $sourceSpec['minifyOptions']['jsMinifier'] = array('JSMin', 'minify'); } if (isset($_POST['minCss'])) { $sourceSpec['minifyOptions']['cssMinifier'] = array('Minify_CSS', 'minify'); } $source = new Minify_Source($sourceSpec); Minify_Logger::setLogger(FirePHP::getInstance(true)); try { Minify::serve('Files', array( 'files' => $source ,'contentType' => Minify::TYPE_HTML )); } catch (Exception $e) { echo h($e->getMessage()); } exit; } $tpl = array(); $tpl['classes'] = array('Minify_HTML', 'JSMin', 'Minify_CSS', 'Minify_CSSmin', 'JSMinPlus'); if (isset($_POST['method']) && in_array($_POST['method'], $tpl['classes'])) { $args = array($textIn); if ($_POST['method'] === 'Minify_HTML') { $args[] = array( 'cssMinifier' => array('Minify_CSS', 'minify') ,'jsMinifier' => array('JSMin', 'minify') ); } $func = array($_POST['method'], 'minify'); $tpl['inBytes'] = strlen($textIn); $startTime = microtime(true); try { $tpl['output'] = call_user_func_array($func, $args); } catch (Exception $e) { $tpl['exceptionMsg'] = getExceptionMsg($e, $textIn); $tpl['output'] = $textIn; sendPage($tpl); } $tpl['time'] = microtime(true) - $startTime; $tpl['outBytes'] = strlen($tpl['output']); } sendPage($tpl); /** * @param Exception $e * @param string $input * @return string HTML */ function getExceptionMsg(Exception $e, $input) { $msg = "

" . h($e->getMessage()) . "

"; if (0 === strpos(get_class($e), 'JSMin_Unterminated') && preg_match('~byte (\d+)~', $e->getMessage(), $m)) { $msg .= "
";
        if ($m[1] > 200) {
            $msg .= h(substr($input, ($m[1] - 200), 200));
        } else {
            $msg .= h(substr($input, 0, $m[1]));
        }
        $highlighted = isset($input[$m[1]]) ? h($input[$m[1]]) : '␄';
        if ($highlighted === "\n") {
            $highlighted = "⏎\n";
        }
        $msg .= "$highlighted";
        $msg .= h(substr($input, $m[1] + 1, 200)) . "
"; } return $msg; } /** * Draw page * * @param array $vars */ function sendPage($vars) { header('Content-Type: text/html; charset=utf-8'); ?> minifyTextarea Bytes in{$vars['inBytes']} (after line endings normalized to \\n) Bytes out{$vars['outBytes']} (reduced " . round(100 - (100 * $vars['outBytes'] / $vars['inBytes'])) . "%) Time (s)" . round($vars['time'], 5) . " "; } ?>

Minify with:

...or this HTML to the browser. Also minify: : .