ACC SHELL

Path : /srv/www/vhosts/sc-brno/tecaprint/admin/js/
File Upload :
Current File : /srv/www/vhosts/sc-brno/tecaprint/admin/js/mini.php

<?php
/**
 * Simple script to combine and compress JS files, to reduce the number of file request the server has to handle.
 * For more options/flexibility, see Minify : http://code.google.com/p/minify/
 */

// If no file requested
if (!isset($_GET['files']) or strlen($_GET['files']) == 0)
{
	header('Status: 404 Not Found');
	exit();
}

// Cache folder
$cachePath = 'cache/';
if (!file_exists($cachePath))
{
	mkdir($cachePath);
}

// Tell the browser what kind of data to expect
header('Content-type: text/javascript');

// Enable compression
/*if (extension_loaded('zlib'))
{
	ini_set('zlib.output_compression', 'On');
}*/

/**
 * Add file extension if needed
 * @var string $file the file name
 */
function addExtension($file)
{
	if (substr($file, -3) !== '.js')
	{
		$file .= '.js';
	}
	return $file;
}

// Calculate an unique ID of requested files & their change time
$files = array_map('addExtension', explode(',', $_GET['files']));
$md5 = '';
foreach ($files as $file)
{
	$filemtime = @filemtime($file);
	$md5 .= date('YmdHis', $filemtime ? $filemtime : NULL).$file;
}
$md5 = md5($md5);

// If cache exists of this files/time ID
if (file_exists($cachePath.$md5))
{
	readfile($cachePath.$md5);
}
else
{
	// Lib
	require('jsmin.php');
	
	// Load files
	error_reporting(0);
	$content = '';
	foreach ($files as $file)
	{
		$content .= file_get_contents($file);
	}
	$content = JSMin::minify($content);
	
	// Delete cache files older than an hour
	$oldDate = time()-3600;
	$cachedFiles = scandir($cachePath);
	foreach ($cachedFiles as $file)
	{
		$filemtime = @filemtime($cachePath.$file);
		if (strlen($file) == 32 and ($filemtime === false or $filemtime < $oldDate))
		{
			unlink($cachePath.$file);
		}
	}
	
	// Write cache file
	file_put_contents($cachePath.$md5, $content);
	
	// Output
	echo $content;
}

ACC SHELL 2018