]*>)@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) . " |
";
}
?>