/
jcompress.php
103 lines (79 loc) · 2.44 KB
/
jcompress.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<?php
require_once('inc/core/helpers.php');
require_once ("conf/init.php");
function IE()
{
$agent=getenv("HTTP_USER_AGENT");
if(strstr($agent,'MSIE')){return true;}
else return false;
}
function getExtension($file)
{
$pos=strrpos($file, '.');
if (!$pos)
{
return false;
}
$str=substr($file, $pos, strlen($file));
return $str;
}
function compress_file($file, $cmp = true, $level = 9)
{
if ($all=file_get_contents($file))
{
if ($cmp&&!IE())
{
return $d=gzencode($all, $level);
}
else
{
return $all;
}
}
}
function compress_mass_js($compress_scheme)
{
if ($pathes=explode(',',$compress_scheme))
{
$cjs='';
foreach ($pathes as $path)
{
if(file_exists(PATH_ . $path.'.js'))
{
$cjs.=file_get_contents(PATH_ . $path.'.js',false)."\r\n";
}
}
compress_js_output ($cjs);
}
}
function compress_js_output($input, $fileflag = false, $level = 9)
{
if ($fileflag)
{
if (in_array(getExtension($input),array('.js')))
{
$all=compress_file(PATH_ . $input, xConfig::get('GLOBAL','output_js_compress'));
}
else
{
$all=gzencode($all, $level);
}
}
elseif(xConfig::get('GLOBAL','output_js_compress'))
{
$all=gzencode($input, $level);
}else{
echo $input;
return;
}
if (!IE()&& xConfig::get('GLOBAL','output_js_compress'))
{
if (@$_SERVER["HTTP_ACCEPT_ENCODING"] && FALSE !== strpos($_SERVER["HTTP_ACCEPT_ENCODING"], 'gzip'))
{
header ('Content-Encoding: gzip');
header ('Content-Length: ' . strlen($all));
}
}
echo $all;
}
if (isset($_GET['m'])){compress_mass_js($_GET['m']);}elseif($_GET['q']){compress_js_output($_GET['q'],true);}