cache = new Minify_Cache_Null();
$env = $app->env;
function getPost($key) {
if (! isset($_POST[$key])) {
return null;
}
return get_magic_quotes_gpc()
? stripslashes($_POST[$key])
: $_POST[$key];
}
function sniffType($headers) {
$charset = 'utf-8';
$type = null;
$headers = "\n\n" . implode("\n\n", $headers) . "\n\n";
if (preg_match(
'@\\n\\nContent-Type: *([\\w/\\+-]+)( *; *charset *= *([\\w-]+))? *\\n\\n@i'
,$headers
,$m)) {
$sentType = $m[1];
if (isset($m[3])) {
$charset = $m[3];
}
if (preg_match('@^(?:text|application)/(?:x-)?(?:java|ecma)script$@i', $sentType)) {
$type = 'application/x-javascript';
} elseif (preg_match('@^(?:text|application)/(?:html|xml|xhtml+xml)$@i', $sentType, $m)) {
$type = 'text/html';
} elseif ($sentType === 'text/css') {
$type = $sentType;
}
}
return array(
'minify' => $type
,'sent' => $sentType
,'charset' => $charset
);
}
if (isset($_POST['url'])) {
require '../config.php';
$url = trim($env->post('url'));
$ua = trim($env->post('ua'));
$cook = trim($env->post('cook'));
if (! preg_match('@^https?://@', $url)) {
die('HTTP(s) only.');
}
$httpOpts = array(
'max_redirects' => 0
,'timeout' => 3
);
if ($ua !== '') {
$httpOpts['user_agent'] = $ua;
}
if ($cook !== '') {
$httpOpts['header'] = "Cookie: {$cook}\r\n";
}
$ctx = stream_context_create(array(
'http' => $httpOpts
));
// fetch
if (! ($fp = @fopen($url, 'r', false, $ctx))) {
die('Couldn\'t open URL.');
}
$meta = stream_get_meta_data($fp);
$content = stream_get_contents($fp);
fclose($fp);
// get type info
$type = sniffType($meta['wrapper_data']);
if (! $type['minify']) {
die('Unrecognized Content-Type: ' . $type['sent']);
}
if ($type['minify'] === 'text/html'
&& isset($_POST['addBase'])
&& ! preg_match('@
Warning! Please do not place this application on a public site. This should be used only for testing.
This tool will retrieve the contents of a URL and minify it. The fetched resource Content-Type will determine the minifier used.