| @@ -2,9 +2,9 @@ discard block | ||
| 2 | 2 | |
| 3 | 3 | //Check everything exists before using it | 
| 4 | 4 | if(!isset($_SERVER['HTTP_ACCEPT_ENCODING'])) | 
| 5 | - $_SERVER['HTTP_ACCEPT_ENCODING'] = ''; | |
| 5 | + $_SERVER['HTTP_ACCEPT_ENCODING'] = ''; | |
| 6 | 6 | if(!isset($_SERVER['HTTP_USER_AGENT'])) | 
| 7 | - $_SERVER['HTTP_USER_AGENT'] = ''; | |
| 7 | + $_SERVER['HTTP_USER_AGENT'] = ''; | |
| 8 | 8 | |
| 9 | 9 | // Determine supported compression method | 
| 10 | 10 | $gzip = strstr($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip'); | 
| @@ -15,20 +15,20 @@ discard block | ||
| 15 | 15 | |
| 16 | 16 | // Check for buggy versions of Internet Explorer | 
| 17 | 17 | if (!strstr($_SERVER['HTTP_USER_AGENT'], 'Opera') && | 
| 18 | -	preg_match('/^Mozilla\/4\.0 \(compatible; MSIE ([0-9]\.[0-9])/i', $_SERVER['HTTP_USER_AGENT'], $matches)) | |
| 18 | +    preg_match('/^Mozilla\/4\.0 \(compatible; MSIE ([0-9]\.[0-9])/i', $_SERVER['HTTP_USER_AGENT'], $matches)) | |
| 19 | 19 |  { | 
| 20 | - $version = floatval($matches[1]); | |
| 20 | + $version = floatval($matches[1]); | |
| 21 | 21 | |
| 22 | - if ($version < 6) | |
| 23 | - $encoding = 'none'; | |
| 22 | + if ($version < 6) | |
| 23 | + $encoding = 'none'; | |
| 24 | 24 | |
| 25 | - if ($version == 6 && !strstr($_SERVER['HTTP_USER_AGENT'], 'EV1')) | |
| 26 | - $encoding = 'none'; | |
| 25 | + if ($version == 6 && !strstr($_SERVER['HTTP_USER_AGENT'], 'EV1')) | |
| 26 | + $encoding = 'none'; | |
| 27 | 27 | } | 
| 28 | 28 | |
| 29 | 29 | //Some servers compress the output of PHP - Don't break in those cases | 
| 30 | 30 |  if(ini_get('output_handler') == 'ob_gzhandler' || ini_get('zlib.output_compression') == 1) | 
| 31 | - $encoding = 'none'; | |
| 31 | + $encoding = 'none'; | |
| 32 | 32 | |
| 33 | 33 | //Get data | 
| 34 | 34 | $contents = file_get_contents(__FILE__.'.'.$encoding); | 
| @@ -41,24 +41,24 @@ discard block | ||
| 41 | 41 | $modTimeMatch = (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) === $modTime); | 
| 42 | 42 | |
| 43 | 43 |  if (($modTimeMatch)||($eTagMatch)) { | 
| 44 | -	header('HTTP/1.1 304 Not Modified'); | |
| 45 | -	header('Connection: close'); | |
| 44 | +    header('HTTP/1.1 304 Not Modified'); | |
| 45 | +    header('Connection: close'); | |
| 46 | 46 |  } else { | 
| 47 | - // send all sorts of headers | |
| 48 | - $expireTime=60*60*24*356; // 1y max according to RFC | |
| 47 | + // send all sorts of headers | |
| 48 | + $expireTime=60*60*24*356; // 1y max according to RFC | |
| 49 | 49 | |
| 50 | - if(isset($encoding) && $encoding != 'none') | |
| 51 | -	{ | |
| 52 | -		header('Content-Encoding: '.$encoding); | |
| 53 | - } | |
| 54 | -	header('Vary: Accept-Encoding'); | |
| 55 | -	header('Content-Length: '.strlen($contents)); | |
| 56 | -	header('Content-type: %%CONTENT%%; charset=utf-8'); | |
| 57 | -	header('Cache-Control: max-age='.$expireTime.', public, must-revalidate'); | |
| 58 | -	header('Expires: '.gmdate('D, d M Y H:i:s', time() + $expireTime).' GMT'); //10 years | |
| 59 | -	header('ETag: ' . $eTag); | |
| 60 | -	header('Last-Modified: '.gmdate('D, d M Y H:i:s', $modTime).' GMT'); | |
| 50 | + if(isset($encoding) && $encoding != 'none') | |
| 51 | +    { | |
| 52 | +        header('Content-Encoding: '.$encoding); | |
| 53 | + } | |
| 54 | +    header('Vary: Accept-Encoding'); | |
| 55 | +    header('Content-Length: '.strlen($contents)); | |
| 56 | +    header('Content-type: %%CONTENT%%; charset=utf-8'); | |
| 57 | +    header('Cache-Control: max-age='.$expireTime.', public, must-revalidate'); | |
| 58 | +    header('Expires: '.gmdate('D, d M Y H:i:s', time() + $expireTime).' GMT'); //10 years | |
| 59 | +    header('ETag: ' . $eTag); | |
| 60 | +    header('Last-Modified: '.gmdate('D, d M Y H:i:s', $modTime).' GMT'); | |
| 61 | 61 | |
| 62 | - // send output | |
| 63 | - echo $contents; | |
| 62 | + // send output | |
| 63 | + echo $contents; | |
| 64 | 64 | } | 
| @@ -1,10 +1,12 @@ discard block | ||
| 1 | 1 | <?php exit; | 
| 2 | 2 | |
| 3 | 3 | //Check everything exists before using it | 
| 4 | -if(!isset($_SERVER['HTTP_ACCEPT_ENCODING'])) | |
| 4 | +if(!isset($_SERVER['HTTP_ACCEPT_ENCODING'])) { | |
| 5 | 5 | $_SERVER['HTTP_ACCEPT_ENCODING'] = ''; | 
| 6 | -if(!isset($_SERVER['HTTP_USER_AGENT'])) | |
| 6 | +} | |
| 7 | +if(!isset($_SERVER['HTTP_USER_AGENT'])) { | |
| 7 | 8 | $_SERVER['HTTP_USER_AGENT'] = ''; | 
| 9 | +} | |
| 8 | 10 | |
| 9 | 11 | // Determine supported compression method | 
| 10 | 12 | $gzip = strstr($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip'); | 
| @@ -19,16 +21,19 @@ discard block | ||
| 19 | 21 |  { | 
| 20 | 22 | $version = floatval($matches[1]); | 
| 21 | 23 | |
| 22 | - if ($version < 6) | |
| 23 | - $encoding = 'none'; | |
| 24 | +	if ($version < 6) { | |
| 25 | + $encoding = 'none'; | |
| 26 | + } | |
| 24 | 27 | |
| 25 | - if ($version == 6 && !strstr($_SERVER['HTTP_USER_AGENT'], 'EV1')) | |
| 26 | - $encoding = 'none'; | |
| 27 | -} | |
| 28 | +	if ($version == 6 && !strstr($_SERVER['HTTP_USER_AGENT'], 'EV1')) { | |
| 29 | + $encoding = 'none'; | |
| 30 | + } | |
| 31 | + } | |
| 28 | 32 | |
| 29 | 33 | //Some servers compress the output of PHP - Don't break in those cases | 
| 30 | -if(ini_get('output_handler') == 'ob_gzhandler' || ini_get('zlib.output_compression') == 1) | |
| 34 | +if(ini_get('output_handler') == 'ob_gzhandler' || ini_get('zlib.output_compression') == 1) { | |
| 31 | 35 | $encoding = 'none'; | 
| 36 | +} | |
| 32 | 37 | |
| 33 | 38 | //Get data | 
| 34 | 39 | $contents = file_get_contents(__FILE__.'.'.$encoding); | 
| @@ -2,9 +2,9 @@ discard block | ||
| 2 | 2 | |
| 3 | 3 | //Check everything exists before using it | 
| 4 | 4 | if(!isset($_SERVER['HTTP_ACCEPT_ENCODING'])) | 
| 5 | - $_SERVER['HTTP_ACCEPT_ENCODING'] = ''; | |
| 5 | + $_SERVER['HTTP_ACCEPT_ENCODING'] = ''; | |
| 6 | 6 | if(!isset($_SERVER['HTTP_USER_AGENT'])) | 
| 7 | - $_SERVER['HTTP_USER_AGENT'] = ''; | |
| 7 | + $_SERVER['HTTP_USER_AGENT'] = ''; | |
| 8 | 8 | |
| 9 | 9 | // Determine supported compression method | 
| 10 | 10 | $gzip = strstr($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip'); | 
| @@ -15,30 +15,30 @@ discard block | ||
| 15 | 15 | |
| 16 | 16 | // Check for buggy versions of Internet Explorer | 
| 17 | 17 | if (!strstr($_SERVER['HTTP_USER_AGENT'], 'Opera') && | 
| 18 | -	preg_match('/^Mozilla\/4\.0 \(compatible; MSIE ([0-9]\.[0-9])/i', $_SERVER['HTTP_USER_AGENT'], $matches)) | |
| 18 | +    preg_match('/^Mozilla\/4\.0 \(compatible; MSIE ([0-9]\.[0-9])/i', $_SERVER['HTTP_USER_AGENT'], $matches)) | |
| 19 | 19 |  { | 
| 20 | - $version = floatval($matches[1]); | |
| 20 | + $version = floatval($matches[1]); | |
| 21 | 21 | |
| 22 | - if ($version < 6) | |
| 23 | - $encoding = 'none'; | |
| 22 | + if ($version < 6) | |
| 23 | + $encoding = 'none'; | |
| 24 | 24 | |
| 25 | - if ($version == 6 && !strstr($_SERVER['HTTP_USER_AGENT'], 'EV1')) | |
| 26 | - $encoding = 'none'; | |
| 25 | + if ($version == 6 && !strstr($_SERVER['HTTP_USER_AGENT'], 'EV1')) | |
| 26 | + $encoding = 'none'; | |
| 27 | 27 | } | 
| 28 | 28 | |
| 29 | 29 | //Some servers compress the output of PHP - Don't break in those cases | 
| 30 | 30 |  if(ini_get('output_handler') == 'ob_gzhandler' || ini_get('zlib.output_compression') == 1) | 
| 31 | - $encoding = 'none'; | |
| 31 | + $encoding = 'none'; | |
| 32 | 32 | |
| 33 | 33 | $iscompressed = file_exists(__FILE__.'.'.$encoding); | 
| 34 | 34 | if($encoding != 'none' && $iscompressed == false) | 
| 35 | 35 |  { | 
| 36 | - $flag = ($encoding == 'gzip' ? FORCE_GZIP : FORCE_DEFLATE); | |
| 37 | - $code = file_get_contents(__FILE__.'.none'); | |
| 38 | - $contents = gzencode($code,9,$flag); | |
| 36 | + $flag = ($encoding == 'gzip' ? FORCE_GZIP : FORCE_DEFLATE); | |
| 37 | + $code = file_get_contents(__FILE__.'.none'); | |
| 38 | + $contents = gzencode($code,9,$flag); | |
| 39 | 39 |  }else{ | 
| 40 | - //Get data | |
| 41 | - $contents = file_get_contents(__FILE__.'.'.$encoding); | |
| 40 | + //Get data | |
| 41 | + $contents = file_get_contents(__FILE__.'.'.$encoding); | |
| 42 | 42 | } | 
| 43 | 43 | |
| 44 | 44 | // first check if we have to send 304 | 
| @@ -51,35 +51,35 @@ discard block | ||
| 51 | 51 | $modTimeMatch = (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) === $modTime); | 
| 52 | 52 | |
| 53 | 53 |  if (($modTimeMatch)||($eTagMatch)) { | 
| 54 | -	header('HTTP/1.1 304 Not Modified'); | |
| 55 | -	header('Connection: close'); | |
| 54 | +    header('HTTP/1.1 304 Not Modified'); | |
| 55 | +    header('Connection: close'); | |
| 56 | 56 |  } else { | 
| 57 | - // send all sorts of headers | |
| 58 | - $expireTime=60*60*24*355; // 1y max according to RFC | |
| 59 | -	if ($encoding != 'none') { | |
| 60 | -		header('Content-Encoding: '.$encoding); | |
| 61 | - } | |
| 62 | -	header('Vary: Accept-Encoding'); | |
| 63 | -	header('Content-Length: '.strlen($contents)); | |
| 64 | -	header('Content-type: %%CONTENT%%; charset=utf-8'); | |
| 65 | -	header('Cache-Control: max-age='.$expireTime.', public, must-revalidate'); | |
| 66 | -	header('Expires: '.gmdate('D, d M Y H:i:s', time() + $expireTime).' GMT'); | |
| 67 | -	header('ETag: ' . $eTag); | |
| 68 | -	header('Last-Modified: '.gmdate('D, d M Y H:i:s', $modTime).' GMT'); | |
| 57 | + // send all sorts of headers | |
| 58 | + $expireTime=60*60*24*355; // 1y max according to RFC | |
| 59 | +    if ($encoding != 'none') { | |
| 60 | +        header('Content-Encoding: '.$encoding); | |
| 61 | + } | |
| 62 | +    header('Vary: Accept-Encoding'); | |
| 63 | +    header('Content-Length: '.strlen($contents)); | |
| 64 | +    header('Content-type: %%CONTENT%%; charset=utf-8'); | |
| 65 | +    header('Cache-Control: max-age='.$expireTime.', public, must-revalidate'); | |
| 66 | +    header('Expires: '.gmdate('D, d M Y H:i:s', time() + $expireTime).' GMT'); | |
| 67 | +    header('ETag: ' . $eTag); | |
| 68 | +    header('Last-Modified: '.gmdate('D, d M Y H:i:s', $modTime).' GMT'); | |
| 69 | 69 | |
| 70 | - // send output | |
| 71 | - echo $contents; | |
| 70 | + // send output | |
| 71 | + echo $contents; | |
| 72 | 72 | |
| 73 | - //And write to filesystem cache if not done yet | |
| 74 | - if($encoding != 'none' && $iscompressed == false) | |
| 75 | -	{ | |
| 76 | - //Write the content we sent | |
| 77 | - file_put_contents(__FILE__.'.'.$encoding,$contents); | |
| 73 | + //And write to filesystem cache if not done yet | |
| 74 | + if($encoding != 'none' && $iscompressed == false) | |
| 75 | +    { | |
| 76 | + //Write the content we sent | |
| 77 | + file_put_contents(__FILE__.'.'.$encoding,$contents); | |
| 78 | 78 | |
| 79 | - //And write the new content | |
| 80 | - $flag = ($encoding == 'gzip' ? FORCE_DEFLATE : FORCE_GZIP); | |
| 81 | - $ext = ($encoding == 'gzip' ? 'deflate' : 'gzip'); | |
| 82 | - $contents = gzencode($code,9,$flag); | |
| 83 | - file_put_contents(__FILE__.'.'.$ext,$contents); | |
| 84 | - } | |
| 79 | + //And write the new content | |
| 80 | + $flag = ($encoding == 'gzip' ? FORCE_DEFLATE : FORCE_GZIP); | |
| 81 | + $ext = ($encoding == 'gzip' ? 'deflate' : 'gzip'); | |
| 82 | + $contents = gzencode($code,9,$flag); | |
| 83 | + file_put_contents(__FILE__.'.'.$ext,$contents); | |
| 84 | + } | |
| 85 | 85 | } | 
| @@ -1,10 +1,12 @@ discard block | ||
| 1 | 1 | <?php exit; | 
| 2 | 2 | |
| 3 | 3 | //Check everything exists before using it | 
| 4 | -if(!isset($_SERVER['HTTP_ACCEPT_ENCODING'])) | |
| 4 | +if(!isset($_SERVER['HTTP_ACCEPT_ENCODING'])) { | |
| 5 | 5 | $_SERVER['HTTP_ACCEPT_ENCODING'] = ''; | 
| 6 | -if(!isset($_SERVER['HTTP_USER_AGENT'])) | |
| 6 | +} | |
| 7 | +if(!isset($_SERVER['HTTP_USER_AGENT'])) { | |
| 7 | 8 | $_SERVER['HTTP_USER_AGENT'] = ''; | 
| 9 | +} | |
| 8 | 10 | |
| 9 | 11 | // Determine supported compression method | 
| 10 | 12 | $gzip = strstr($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip'); | 
| @@ -19,16 +21,19 @@ discard block | ||
| 19 | 21 |  { | 
| 20 | 22 | $version = floatval($matches[1]); | 
| 21 | 23 | |
| 22 | - if ($version < 6) | |
| 23 | - $encoding = 'none'; | |
| 24 | +	if ($version < 6) { | |
| 25 | + $encoding = 'none'; | |
| 26 | + } | |
| 24 | 27 | |
| 25 | - if ($version == 6 && !strstr($_SERVER['HTTP_USER_AGENT'], 'EV1')) | |
| 26 | - $encoding = 'none'; | |
| 27 | -} | |
| 28 | +	if ($version == 6 && !strstr($_SERVER['HTTP_USER_AGENT'], 'EV1')) { | |
| 29 | + $encoding = 'none'; | |
| 30 | + } | |
| 31 | + } | |
| 28 | 32 | |
| 29 | 33 | //Some servers compress the output of PHP - Don't break in those cases | 
| 30 | -if(ini_get('output_handler') == 'ob_gzhandler' || ini_get('zlib.output_compression') == 1) | |
| 34 | +if(ini_get('output_handler') == 'ob_gzhandler' || ini_get('zlib.output_compression') == 1) { | |
| 31 | 35 | $encoding = 'none'; | 
| 36 | +} | |
| 32 | 37 | |
| 33 | 38 | $iscompressed = file_exists(__FILE__.'.'.$encoding); | 
| 34 | 39 | if($encoding != 'none' && $iscompressed == false) | 
| @@ -36,7 +41,7 @@ discard block | ||
| 36 | 41 | $flag = ($encoding == 'gzip' ? FORCE_GZIP : FORCE_DEFLATE); | 
| 37 | 42 | $code = file_get_contents(__FILE__.'.none'); | 
| 38 | 43 | $contents = gzencode($code,9,$flag); | 
| 39 | -}else{ | |
| 44 | +} else{ | |
| 40 | 45 | //Get data | 
| 41 | 46 | $contents = file_get_contents(__FILE__.'.'.$encoding); | 
| 42 | 47 | } | 
| @@ -1,5 +1,8 @@ | ||
| 1 | 1 | <?php | 
| 2 | -if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly | |
| 2 | +if ( ! defined( 'ABSPATH' ) ) { | |
| 3 | + exit; | |
| 4 | +} | |
| 5 | +// Exit if accessed directly | |
| 3 | 6 | |
| 4 | 7 |  class autoptimizeCache { | 
| 5 | 8 | private $filename; | 
| @@ -1,5 +1,8 @@ discard block | ||
| 1 | 1 | <?php | 
| 2 | -if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly | |
| 2 | +if ( ! defined( 'ABSPATH' ) ) { | |
| 3 | + exit; | |
| 4 | +} | |
| 5 | +// Exit if accessed directly | |
| 3 | 6 | |
| 4 | 7 |  class autoptimizeHTML extends autoptimizeBase { | 
| 5 | 8 | private $keepcomments = false; | 
| @@ -26,8 +29,9 @@ discard block | ||
| 26 | 29 | //Joins and optimizes CSS | 
| 27 | 30 |      public function minify() { | 
| 28 | 31 | $noptimizeHTML = apply_filters( 'autoptimize_filter_html_noptimize', false, $this->content ); | 
| 29 | - if ($noptimizeHTML) | |
| 30 | - return false; | |
| 32 | +        if ($noptimizeHTML) { | |
| 33 | + return false; | |
| 34 | + } | |
| 31 | 35 | |
| 32 | 36 |          if(class_exists('Minify_HTML')) { | 
| 33 | 37 | // wrap the to-be-excluded strings in noptimize tags | 
| @@ -1,5 +1,8 @@ discard block | ||
| 1 | 1 | <?php | 
| 2 | -if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly | |
| 2 | +if ( ! defined( 'ABSPATH' ) ) { | |
| 3 | + exit; | |
| 4 | +} | |
| 5 | +// Exit if accessed directly | |
| 3 | 6 | |
| 4 | 7 |  class autoptimizeScripts extends autoptimizeBase { | 
| 5 | 8 | private $scripts = array(); | 
| @@ -22,7 +25,9 @@ discard block | ||
| 22 | 25 | //Reads the page and collects script tags | 
| 23 | 26 |      public function read($options) { | 
| 24 | 27 | $noptimizeJS = apply_filters( 'autoptimize_filter_js_noptimize', false, $this->content ); | 
| 25 | - if ($noptimizeJS) return false; | |
| 28 | +        if ($noptimizeJS) { | |
| 29 | + return false; | |
| 30 | + } | |
| 26 | 31 | |
| 27 | 32 | // only optimize known good JS? | 
| 28 | 33 | $whitelistJS = apply_filters( 'autoptimize_filter_js_whitelist', "" ); | 
| @@ -65,8 +70,9 @@ discard block | ||
| 65 | 70 | } | 
| 66 | 71 | |
| 67 | 72 | //Should we add try-catch? | 
| 68 | - if($options['trycatch'] == true) | |
| 69 | - $this->trycatch = true; | |
| 73 | +        if($options['trycatch'] == true) { | |
| 74 | + $this->trycatch = true; | |
| 75 | + } | |
| 70 | 76 | |
| 71 | 77 | // force js in head? | 
| 72 | 78 |          if($options['forcehead'] == true) { | 
| @@ -126,7 +126,7 @@ discard block | ||
| 126 | 126 | $origTag = $tag; | 
| 127 | 127 |                              foreach ($excludeJS as $exclTag => $exclFlags) { | 
| 128 | 128 |                                  if ( strpos($origTag,$exclTag)!==false && in_array($exclFlags,array("async","defer")) ) { | 
| 129 | -                                   $tag = str_replace('<script ','<script '.$exclFlags.' ',$tag); | |
| 129 | +                                    $tag = str_replace('<script ','<script '.$exclFlags.' ',$tag); | |
| 130 | 130 | } | 
| 131 | 131 | } | 
| 132 | 132 | } | 
| @@ -242,7 +242,7 @@ discard block | ||
| 242 | 242 | |
| 243 | 243 | //$this->jscode has all the uncompressed code now. | 
| 244 | 244 |          if ($this->alreadyminified!==true) { | 
| 245 | -          if (class_exists('JSMin') && apply_filters( 'autoptimize_js_do_minify' , true)) { | |
| 245 | +            if (class_exists('JSMin') && apply_filters( 'autoptimize_js_do_minify' , true)) { | |
| 246 | 246 |              if (@is_callable(array("JSMin","minify"))) { | 
| 247 | 247 | $tmp_jscode = trim(JSMin::minify($this->jscode)); | 
| 248 | 248 |                  if (!empty($tmp_jscode)) { | 
| @@ -256,10 +256,10 @@ discard block | ||
| 256 | 256 | $this->jscode = $this->inject_minified($this->jscode); | 
| 257 | 257 | return false; | 
| 258 | 258 | } | 
| 259 | -          } else { | |
| 260 | - $this->jscode = $this->inject_minified($this->jscode); | |
| 259 | +            } else { | |
| 260 | + $this->jscode = $this->inject_minified($this->jscode); | |
| 261 | 261 | return false; | 
| 262 | - } | |
| 262 | + } | |
| 263 | 263 | } | 
| 264 | 264 | return true; | 
| 265 | 265 | } | 
| @@ -1,5 +1,8 @@ discard block | ||
| 1 | 1 | <?php | 
| 2 | -if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly | |
| 2 | +if ( ! defined( 'ABSPATH' ) ) { | |
| 3 | + exit; | |
| 4 | +} | |
| 5 | +// Exit if accessed directly | |
| 3 | 6 | |
| 4 | 7 |  abstract class autoptimizeBase { | 
| 5 | 8 | protected $content = ''; | 
| @@ -106,7 +109,9 @@ discard block | ||
| 106 | 109 | $out = parse_url($in,PHP_URL_HOST); | 
| 107 | 110 | |
| 108 | 111 | // fallback if parse_url does not understand the url is in fact a url | 
| 109 | - if (empty($out)) $out=$in; | |
| 112 | +        if (empty($out)) { | |
| 113 | + $out=$in; | |
| 114 | + } | |
| 110 | 115 | |
| 111 | 116 | return $out; | 
| 112 | 117 | } | 
| @@ -273,12 +273,12 @@ discard block | ||
| 273 | 273 | return true; | 
| 274 | 274 | } | 
| 275 | 275 | |
| 276 | - // we have to check for a preceding keyword, and we don't need to pattern | |
| 277 | - // match over the whole output. | |
| 278 | - $recentOutput = substr($this->output, -10); | |
| 276 | + // we have to check for a preceding keyword, and we don't need to pattern | |
| 277 | + // match over the whole output. | |
| 278 | + $recentOutput = substr($this->output, -10); | |
| 279 | 279 | |
| 280 | - // check if return/typeof directly precede a pattern without a space | |
| 281 | -	foreach (array('return', 'typeof') as $keyword) {
 | |
| 280 | + // check if return/typeof directly precede a pattern without a space | |
| 281 | +    foreach (array('return', 'typeof') as $keyword) {
 | |
| 282 | 282 |              if ($this->a !== substr($keyword, -1)) {
 | 
| 283 | 283 | // certainly wasn't keyword | 
| 284 | 284 | continue; | 
| @@ -290,13 +290,13 @@ discard block | ||
| 290 | 290 | } | 
| 291 | 291 | } | 
| 292 | 292 | |
| 293 | - // check all keywords | |
| 294 | -	if ($this->a === ' ' || $this->a === "\n") {
 | |
| 295 | -		if (preg_match('~(^|[\\s\\S])(?:case|else|in|return|typeof)$~', $recentOutput, $m)) {
 | |
| 296 | -			if ($m[1] === '' || !$this->isAlphaNum($m[1])) {
 | |
| 297 | - return true; | |
| 298 | - } | |
| 299 | - } | |
| 293 | + // check all keywords | |
| 294 | +    if ($this->a === ' ' || $this->a === "\n") {
 | |
| 295 | +        if (preg_match('~(^|[\\s\\S])(?:case|else|in|return|typeof)$~', $recentOutput, $m)) {
 | |
| 296 | +            if ($m[1] === '' || !$this->isAlphaNum($m[1])) {
 | |
| 297 | + return true; | |
| 298 | + } | |
| 299 | + } | |
| 300 | 300 | } | 
| 301 | 301 | |
| 302 | 302 | return false; | 
| @@ -46,62 +46,62 @@ discard block | ||
| 46 | 46 | */ | 
| 47 | 47 | |
| 48 | 48 |  class JSMin {
 | 
| 49 | - const ORD_LF = 10; | |
| 50 | - const ORD_SPACE = 32; | |
| 49 | + const ORD_LF = 10; | |
| 50 | + const ORD_SPACE = 32; | |
| 51 | 51 | |
| 52 | - protected $a = ''; | |
| 53 | - protected $b = ''; | |
| 54 | - protected $input = ''; | |
| 55 | - protected $inputIndex = 0; | |
| 56 | - protected $inputLength = 0; | |
| 57 | - protected $lookAhead = null; | |
| 58 | - protected $output = ''; | |
| 52 | + protected $a = ''; | |
| 53 | + protected $b = ''; | |
| 54 | + protected $input = ''; | |
| 55 | + protected $inputIndex = 0; | |
| 56 | + protected $inputLength = 0; | |
| 57 | + protected $lookAhead = null; | |
| 58 | + protected $output = ''; | |
| 59 | 59 | |
| 60 | - // -- Public Static Methods -------------------------------------------------- | |
| 60 | + // -- Public Static Methods -------------------------------------------------- | |
| 61 | 61 | |
| 62 | -  public static function minify($js) {
 | |
| 62 | +    public static function minify($js) {
 | |
| 63 | 63 | $jsmin = new JSMin($js); | 
| 64 | 64 | return $jsmin->min(); | 
| 65 | - } | |
| 65 | + } | |
| 66 | 66 | |
| 67 | - // -- Public Instance Methods ------------------------------------------------ | |
| 67 | + // -- Public Instance Methods ------------------------------------------------ | |
| 68 | 68 | |
| 69 | -  public function __construct($input) {
 | |
| 69 | +    public function __construct($input) {
 | |
| 70 | 70 |      $this->input       = str_replace("\r\n", "\n", $input);
 | 
| 71 | 71 | $this->inputLength = strlen($this->input); | 
| 72 | - } | |
| 72 | + } | |
| 73 | 73 | |
| 74 | - // -- Protected Instance Methods --------------------------------------------- | |
| 74 | + // -- Protected Instance Methods --------------------------------------------- | |
| 75 | 75 | |
| 76 | -  protected function action($d) {
 | |
| 76 | +    protected function action($d) {
 | |
| 77 | 77 |      switch($d) {
 | 
| 78 | - case 1: | |
| 78 | + case 1: | |
| 79 | 79 | $this->output .= $this->a; | 
| 80 | 80 | |
| 81 | - case 2: | |
| 81 | + case 2: | |
| 82 | 82 | $this->a = $this->b; | 
| 83 | 83 | |
| 84 | 84 |          if ($this->a === "'" || $this->a === '"') {
 | 
| 85 | -          for (;;) {
 | |
| 85 | +            for (;;) {
 | |
| 86 | 86 | $this->output .= $this->a; | 
| 87 | 87 | $this->a = $this->get(); | 
| 88 | 88 | |
| 89 | 89 |              if ($this->a === $this->b) {
 | 
| 90 | - break; | |
| 90 | + break; | |
| 91 | 91 | } | 
| 92 | 92 | |
| 93 | 93 |              if (ord($this->a) <= self::ORD_LF) {
 | 
| 94 | -              throw new JSMinException('Unterminated string literal.');
 | |
| 94 | +                throw new JSMinException('Unterminated string literal.');
 | |
| 95 | 95 | } | 
| 96 | 96 | |
| 97 | 97 |              if ($this->a === '\\') {
 | 
| 98 | - $this->output .= $this->a; | |
| 99 | - $this->a = $this->get(); | |
| 98 | + $this->output .= $this->a; | |
| 99 | + $this->a = $this->get(); | |
| 100 | + } | |
| 100 | 101 | } | 
| 101 | - } | |
| 102 | 102 | } | 
| 103 | 103 | |
| 104 | - case 3: | |
| 104 | + case 3: | |
| 105 | 105 | $this->b = $this->next(); | 
| 106 | 106 | |
| 107 | 107 | if ($this->b === '/' && ( | 
| @@ -109,70 +109,70 @@ discard block | ||
| 109 | 109 | $this->a === ':' || $this->a === '[' || $this->a === '!' || | 
| 110 | 110 |              $this->a === '&' || $this->a === '|' || $this->a === '?')) {
 | 
| 111 | 111 | |
| 112 | - $this->output .= $this->a . $this->b; | |
| 112 | + $this->output .= $this->a . $this->b; | |
| 113 | 113 | |
| 114 | -          for (;;) {
 | |
| 114 | +            for (;;) {
 | |
| 115 | 115 | $this->a = $this->get(); | 
| 116 | 116 | |
| 117 | 117 |              if ($this->a === '/') {
 | 
| 118 | - break; | |
| 118 | + break; | |
| 119 | 119 |              } elseif ($this->a === '\\') {
 | 
| 120 | - $this->output .= $this->a; | |
| 121 | - $this->a = $this->get(); | |
| 120 | + $this->output .= $this->a; | |
| 121 | + $this->a = $this->get(); | |
| 122 | 122 |              } elseif (ord($this->a) <= self::ORD_LF) {
 | 
| 123 | -              throw new JSMinException('Unterminated regular expression '.
 | |
| 124 | - 'literal.'); | |
| 123 | +                throw new JSMinException('Unterminated regular expression '.
 | |
| 124 | + 'literal.'); | |
| 125 | 125 | } | 
| 126 | 126 | |
| 127 | 127 | $this->output .= $this->a; | 
| 128 | - } | |
| 128 | + } | |
| 129 | 129 | |
| 130 | - $this->b = $this->next(); | |
| 130 | + $this->b = $this->next(); | |
| 131 | 131 | } | 
| 132 | 132 | } | 
| 133 | - } | |
| 133 | + } | |
| 134 | 134 | |
| 135 | -  protected function get() {
 | |
| 135 | +    protected function get() {
 | |
| 136 | 136 | $c = $this->lookAhead; | 
| 137 | 137 | $this->lookAhead = null; | 
| 138 | 138 | |
| 139 | 139 |      if ($c === null) {
 | 
| 140 | -      if ($this->inputIndex < $this->inputLength) {
 | |
| 140 | +        if ($this->inputIndex < $this->inputLength) {
 | |
| 141 | 141 | $c = $this->input[$this->inputIndex]; | 
| 142 | 142 | $this->inputIndex += 1; | 
| 143 | -      } else {
 | |
| 143 | +        } else {
 | |
| 144 | 144 | $c = null; | 
| 145 | - } | |
| 145 | + } | |
| 146 | 146 | } | 
| 147 | 147 | |
| 148 | 148 |      if ($c === "\r") {
 | 
| 149 | - return "\n"; | |
| 149 | + return "\n"; | |
| 150 | 150 | } | 
| 151 | 151 | |
| 152 | 152 |      if ($c === null || $c === "\n" || ord($c) >= self::ORD_SPACE) {
 | 
| 153 | - return $c; | |
| 153 | + return $c; | |
| 154 | 154 | } | 
| 155 | 155 | |
| 156 | 156 | return ' '; | 
| 157 | - } | |
| 157 | + } | |
| 158 | 158 | |
| 159 | -  protected function isAlphaNum($c) {
 | |
| 159 | +    protected function isAlphaNum($c) {
 | |
| 160 | 160 |      return ord($c) > 126 || $c === '\\' || preg_match('/^[\w\$]$/', $c) === 1;
 | 
| 161 | - } | |
| 161 | + } | |
| 162 | 162 | |
| 163 | -  protected function min() {
 | |
| 163 | +    protected function min() {
 | |
| 164 | 164 | $this->a = "\n"; | 
| 165 | 165 | $this->action(3); | 
| 166 | 166 | |
| 167 | 167 |      while ($this->a !== null) {
 | 
| 168 | -      switch ($this->a) {
 | |
| 168 | +        switch ($this->a) {
 | |
| 169 | 169 | case ' ': | 
| 170 | 170 |            if ($this->isAlphaNum($this->b)) {
 | 
| 171 | 171 | $this->action(1); | 
| 172 | -          } else {
 | |
| 172 | +            } else {
 | |
| 173 | 173 | $this->action(2); | 
| 174 | - } | |
| 175 | - break; | |
| 174 | + } | |
| 175 | + break; | |
| 176 | 176 | |
| 177 | 177 | case "\n": | 
| 178 | 178 |            switch ($this->b) {
 | 
| @@ -182,21 +182,21 @@ discard block | ||
| 182 | 182 | case '+': | 
| 183 | 183 | case '-': | 
| 184 | 184 | $this->action(1); | 
| 185 | - break; | |
| 185 | + break; | |
| 186 | 186 | |
| 187 | 187 | case ' ': | 
| 188 | 188 | $this->action(3); | 
| 189 | - break; | |
| 189 | + break; | |
| 190 | 190 | |
| 191 | 191 | default: | 
| 192 | 192 |                if ($this->isAlphaNum($this->b)) {
 | 
| 193 | 193 | $this->action(1); | 
| 194 | - } | |
| 195 | -              else {
 | |
| 194 | + } | |
| 195 | +                else {
 | |
| 196 | 196 | $this->action(2); | 
| 197 | - } | |
| 198 | - } | |
| 199 | - break; | |
| 197 | + } | |
| 198 | + } | |
| 199 | + break; | |
| 200 | 200 | |
| 201 | 201 | default: | 
| 202 | 202 |            switch ($this->b) {
 | 
| @@ -204,10 +204,10 @@ discard block | ||
| 204 | 204 |                if ($this->isAlphaNum($this->a)) {
 | 
| 205 | 205 | $this->action(1); | 
| 206 | 206 | break; | 
| 207 | - } | |
| 207 | + } | |
| 208 | 208 | |
| 209 | - $this->action(3); | |
| 210 | - break; | |
| 209 | + $this->action(3); | |
| 210 | + break; | |
| 211 | 211 | |
| 212 | 212 | case "\n": | 
| 213 | 213 |                switch ($this->a) {
 | 
| @@ -219,71 +219,71 @@ discard block | ||
| 219 | 219 | case '"': | 
| 220 | 220 | case "'": | 
| 221 | 221 | $this->action(1); | 
| 222 | - break; | |
| 222 | + break; | |
| 223 | 223 | |
| 224 | 224 | default: | 
| 225 | 225 |                    if ($this->isAlphaNum($this->a)) {
 | 
| 226 | 226 | $this->action(1); | 
| 227 | - } | |
| 228 | -                  else {
 | |
| 227 | + } | |
| 228 | +                    else {
 | |
| 229 | 229 | $this->action(3); | 
| 230 | - } | |
| 231 | - } | |
| 232 | - break; | |
| 230 | + } | |
| 231 | + } | |
| 232 | + break; | |
| 233 | 233 | |
| 234 | 234 | default: | 
| 235 | 235 | $this->action(1); | 
| 236 | - break; | |
| 237 | - } | |
| 238 | - } | |
| 236 | + break; | |
| 237 | + } | |
| 238 | + } | |
| 239 | 239 | } | 
| 240 | 240 | |
| 241 | 241 | return $this->output; | 
| 242 | - } | |
| 242 | + } | |
| 243 | 243 | |
| 244 | -  protected function next() {
 | |
| 244 | +    protected function next() {
 | |
| 245 | 245 | $c = $this->get(); | 
| 246 | 246 | |
| 247 | 247 |      if ($c === '/') {
 | 
| 248 | -      switch($this->peek()) {
 | |
| 248 | +        switch($this->peek()) {
 | |
| 249 | 249 | case '/': | 
| 250 | 250 |            for (;;) {
 | 
| 251 | 251 | $c = $this->get(); | 
| 252 | 252 | |
| 253 | 253 |              if (ord($c) <= self::ORD_LF) {
 | 
| 254 | - return $c; | |
| 254 | + return $c; | |
| 255 | + } | |
| 255 | 256 | } | 
| 256 | - } | |
| 257 | 257 | |
| 258 | 258 | case '*': | 
| 259 | 259 | $this->get(); | 
| 260 | 260 | |
| 261 | -          for (;;) {
 | |
| 261 | +            for (;;) {
 | |
| 262 | 262 |              switch($this->get()) {
 | 
| 263 | - case '*': | |
| 263 | + case '*': | |
| 264 | 264 |                  if ($this->peek() === '/') {
 | 
| 265 | - $this->get(); | |
| 266 | - return ' '; | |
| 265 | + $this->get(); | |
| 266 | + return ' '; | |
| 267 | 267 | } | 
| 268 | 268 | break; | 
| 269 | 269 | |
| 270 | - case null: | |
| 270 | + case null: | |
| 271 | 271 |                  throw new JSMinException('Unterminated comment.');
 | 
| 272 | 272 | } | 
| 273 | - } | |
| 273 | + } | |
| 274 | 274 | |
| 275 | 275 | default: | 
| 276 | 276 | return $c; | 
| 277 | - } | |
| 277 | + } | |
| 278 | 278 | } | 
| 279 | 279 | |
| 280 | 280 | return $c; | 
| 281 | - } | |
| 281 | + } | |
| 282 | 282 | |
| 283 | -  protected function peek() {
 | |
| 283 | +    protected function peek() {
 | |
| 284 | 284 | $this->lookAhead = $this->get(); | 
| 285 | 285 | return $this->lookAhead; | 
| 286 | - } | |
| 286 | + } | |
| 287 | 287 | } | 
| 288 | 288 | |
| 289 | 289 | // -- Exceptions --------------------------------------------------------------- | 
| @@ -191,8 +191,7 @@ discard block | ||
| 191 | 191 | default: | 
| 192 | 192 |                if ($this->isAlphaNum($this->b)) {
 | 
| 193 | 193 | $this->action(1); | 
| 194 | - } | |
| 195 | -              else {
 | |
| 194 | +              } else {
 | |
| 196 | 195 | $this->action(2); | 
| 197 | 196 | } | 
| 198 | 197 | } | 
| @@ -224,8 +223,7 @@ discard block | ||
| 224 | 223 | default: | 
| 225 | 224 |                    if ($this->isAlphaNum($this->a)) {
 | 
| 226 | 225 | $this->action(1); | 
| 227 | - } | |
| 228 | -                  else {
 | |
| 226 | +                  } else {
 | |
| 229 | 227 | $this->action(3); | 
| 230 | 228 | } | 
| 231 | 229 | } | 
| @@ -33,7 +33,7 @@ discard block | ||
| 33 | 33 | * | 
| 34 | 34 | * 'xhtml' : (optional boolean) should content be treated as XHTML1.0? If | 
| 35 | 35 | * unset, minify will sniff for an XHTML doctype. | 
| 36 | - * | |
| 36 | + * | |
| 37 | 37 | * 'keepComments' : (optional boolean) should the HTML comments be kept | 
| 38 | 38 | * in the HTML Code? | 
| 39 | 39 | * | 
| @@ -60,7 +60,7 @@ discard block | ||
| 60 | 60 | * | 
| 61 | 61 | * 'xhtml' : (optional boolean) should content be treated as XHTML1.0? If | 
| 62 | 62 | * unset, minify will sniff for an XHTML doctype. | 
| 63 | - * | |
| 63 | + * | |
| 64 | 64 | * 'xhtml' : (optional boolean) should content be treated as XHTML1.0? If | 
| 65 | 65 | * unset, minify will sniff for an XHTML doctype. | 
| 66 | 66 | * | 
| @@ -111,11 +111,11 @@ discard block | ||
| 111 | 111 | ,$this->_html); | 
| 112 | 112 | |
| 113 | 113 | // remove HTML comments (not containing IE conditional comments). | 
| 114 | -		if  ($this->_keepComments == false) { | |
| 115 | - $this->_html = preg_replace_callback( | |
| 116 | - '/<!--([\\s\\S]*?)-->/' | |
| 117 | - ,array($this, '_commentCB') | |
| 118 | - ,$this->_html); | |
| 114 | +        if  ($this->_keepComments == false) { | |
| 115 | + $this->_html = preg_replace_callback( | |
| 116 | + '/<!--([\\s\\S]*?)-->/' | |
| 117 | + ,array($this, '_commentCB') | |
| 118 | + ,$this->_html); | |
| 119 | 119 | } | 
| 120 | 120 | |
| 121 | 121 | // replace PREs with placeholders | 
| @@ -129,7 +129,7 @@ discard block | ||
| 129 | 129 | ,array($this, '_removeTextareaCB') | 
| 130 | 130 | ,$this->_html); | 
| 131 | 131 | |
| 132 | - // replace data: URIs with placeholders | |
| 132 | + // replace data: URIs with placeholders | |
| 133 | 133 | $this->_html = preg_replace_callback( | 
| 134 | 134 |              '/(=("|\')data:.*\\2)/Ui' | 
| 135 | 135 | ,array($this, '_removeDataURICB') | 
| @@ -183,7 +183,7 @@ discard block | ||
| 183 | 183 | protected $_placeholders = array(); | 
| 184 | 184 | protected $_cssMinifier = null; | 
| 185 | 185 | protected $_jsMinifier = null; | 
| 186 | - protected $_keepComments = false; | |
| 186 | + protected $_keepComments = false; | |
| 187 | 187 | |
| 188 | 188 | protected function _outsideTagCB($m) | 
| 189 | 189 |      { | 
| @@ -200,7 +200,7 @@ discard block | ||
| 200 | 200 | return $this->_reservePlace($m[1]); | 
| 201 | 201 | } | 
| 202 | 202 | |
| 203 | - protected function _removeDataURICB($m) | |
| 203 | + protected function _removeDataURICB($m) | |
| 204 | 204 |      { | 
| 205 | 205 | return $this->_reservePlace($m[1]); | 
| 206 | 206 | } |