Completed
Push — master ( b5e696...31910f )
by frank
02:19
created
classes/autoptimizeBase.php 1 patch
Spacing   +80 added lines, -80 removed lines patch added patch discarded remove patch
@@ -1,5 +1,5 @@  discard block
 block discarded – undo
1 1
 <?php
2
-if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+if (!defined('ABSPATH')) exit; // Exit if accessed directly
3 3
 
4 4
 abstract class autoptimizeBase {
5 5
     protected $content = '';
@@ -23,37 +23,37 @@  discard block
 block discarded – undo
23 23
     
24 24
     //Converts an URL to a full path
25 25
     protected function getpath($url) {
26
-        $url=apply_filters( 'autoptimize_filter_cssjs_alter_url', $url);
26
+        $url = apply_filters('autoptimize_filter_cssjs_alter_url', $url);
27 27
         
28
-        if (strpos($url,'%')!==false) {
29
-            $url=urldecode($url);
28
+        if (strpos($url, '%') !== false) {
29
+            $url = urldecode($url);
30 30
         }
31 31
 
32
-        $siteHost=parse_url(AUTOPTIMIZE_WP_SITE_URL,PHP_URL_HOST);
33
-        $contentHost=parse_url(AUTOPTIMIZE_WP_ROOT_URL,PHP_URL_HOST);
32
+        $siteHost = parse_url(AUTOPTIMIZE_WP_SITE_URL, PHP_URL_HOST);
33
+        $contentHost = parse_url(AUTOPTIMIZE_WP_ROOT_URL, PHP_URL_HOST);
34 34
         
35 35
         // normalize
36
-        if (strpos($url,'//')===0) {
36
+        if (strpos($url, '//') === 0) {
37 37
             if (is_ssl()) {
38 38
                 $url = "https:".$url;
39 39
             } else {
40 40
                 $url = "http:".$url;
41 41
             }
42
-        } else if ((strpos($url,'//')===false) && (strpos($url,$siteHost)===false)) {
42
+        } else if ((strpos($url, '//') === false) && (strpos($url, $siteHost) === false)) {
43 43
             if (AUTOPTIMIZE_WP_SITE_URL === $siteHost) {
44 44
                 $url = AUTOPTIMIZE_WP_SITE_URL.$url;
45 45
             } else {
46
-                $subdir_levels=substr_count(preg_replace("/https?:\/\//","",AUTOPTIMIZE_WP_SITE_URL),"/");
47
-                $url = AUTOPTIMIZE_WP_SITE_URL.str_repeat("/..",$subdir_levels).$url;
46
+                $subdir_levels = substr_count(preg_replace("/https?:\/\//", "", AUTOPTIMIZE_WP_SITE_URL), "/");
47
+                $url = AUTOPTIMIZE_WP_SITE_URL.str_repeat("/..", $subdir_levels).$url;
48 48
             }
49 49
         }
50 50
         
51 51
         if ($siteHost !== $contentHost) {
52
-            $url=str_replace(AUTOPTIMIZE_WP_CONTENT_URL,AUTOPTIMIZE_WP_SITE_URL.AUTOPTIMIZE_WP_CONTENT_NAME,$url);
52
+            $url = str_replace(AUTOPTIMIZE_WP_CONTENT_URL, AUTOPTIMIZE_WP_SITE_URL.AUTOPTIMIZE_WP_CONTENT_NAME, $url);
53 53
         }
54 54
 
55 55
         // first check; hostname wp site should be hostname of url
56
-        $thisHost=@parse_url($url,PHP_URL_HOST);
56
+        $thisHost = @parse_url($url, PHP_URL_HOST);
57 57
         if ($thisHost !== $siteHost) {
58 58
             /* 
59 59
             * first try to get all domains from WPML (if available)
@@ -65,18 +65,18 @@  discard block
 block discarded – undo
65 65
             
66 66
             $multidomainsWPML = apply_filters('wpml_setting', array(), 'language_domains');
67 67
             if (!empty($multidomainsWPML)) {
68
-                $multidomains = array_map(array($this,"ao_getDomain"),$multidomainsWPML);
68
+                $multidomains = array_map(array($this, "ao_getDomain"), $multidomainsWPML);
69 69
             }
70 70
             
71 71
             if (!empty($this->cdn_url)) {
72
-                $multidomains[]=parse_url($this->cdn_url,PHP_URL_HOST);
72
+                $multidomains[] = parse_url($this->cdn_url, PHP_URL_HOST);
73 73
             }
74 74
             
75 75
             $multidomains = apply_filters('autoptimize_filter_cssjs_multidomain', $multidomains);
76 76
             
77 77
             if (!empty($multidomains)) {
78
-                if (in_array($thisHost,$multidomains)) {
79
-                    $url=str_replace($thisHost, parse_url(AUTOPTIMIZE_WP_SITE_URL,PHP_URL_HOST), $url);
78
+                if (in_array($thisHost, $multidomains)) {
79
+                    $url = str_replace($thisHost, parse_url(AUTOPTIMIZE_WP_SITE_URL, PHP_URL_HOST), $url);
80 80
                 } else {
81 81
                     return false;
82 82
                 }
@@ -86,22 +86,22 @@  discard block
 block discarded – undo
86 86
         }
87 87
         
88 88
         // try to remove "wp root url" from url while not minding http<>https
89
-        $tmp_ao_root = preg_replace('/https?:/','',AUTOPTIMIZE_WP_ROOT_URL);
89
+        $tmp_ao_root = preg_replace('/https?:/', '', AUTOPTIMIZE_WP_ROOT_URL);
90 90
         if ($siteHost !== $contentHost) {
91 91
             // as we replaced the content-domain with the site-domain, we should match against that 
92
-            $tmp_ao_root = preg_replace('/https?:/','',AUTOPTIMIZE_WP_SITE_URL);
92
+            $tmp_ao_root = preg_replace('/https?:/', '', AUTOPTIMIZE_WP_SITE_URL);
93 93
         }
94
-        $tmp_url = preg_replace('/https?:/','',$url);
95
-        $path = str_replace($tmp_ao_root,'',$tmp_url);
94
+        $tmp_url = preg_replace('/https?:/', '', $url);
95
+        $path = str_replace($tmp_ao_root, '', $tmp_url);
96 96
         
97 97
         // if path starts with :// or //, this is not a URL in the WP context and we have to assume we can't aggregate
98
-        if (preg_match('#^:?//#',$path)) {
98
+        if (preg_match('#^:?//#', $path)) {
99 99
             /** External script/css (adsense, etc) */
100 100
             return false;
101 101
         }
102 102
 
103 103
         // prepend with WP_ROOT_DIR to have full path to file
104
-        $path = str_replace('//','/',WP_ROOT_DIR.$path);
104
+        $path = str_replace('//', '/', WP_ROOT_DIR.$path);
105 105
         
106 106
         // final check: does file exist and is it readable
107 107
         if (file_exists($path) && is_file($path) && is_readable($path)) {
@@ -114,25 +114,25 @@  discard block
 block discarded – undo
114 114
     // needed for WPML-filter
115 115
     protected function ao_getDomain($in) {
116 116
         // make sure the url starts with something vaguely resembling a protocol
117
-        if ((strpos($in,"http")!==0) && (strpos($in,"//")!==0)) {
118
-            $in="http://".$in;
117
+        if ((strpos($in, "http") !== 0) && (strpos($in, "//") !== 0)) {
118
+            $in = "http://".$in;
119 119
         }
120 120
         
121 121
         // do the actual parse_url
122
-        $out = parse_url($in,PHP_URL_HOST);
122
+        $out = parse_url($in, PHP_URL_HOST);
123 123
         
124 124
         // fallback if parse_url does not understand the url is in fact a url
125
-        if (empty($out)) $out=$in;
125
+        if (empty($out)) $out = $in;
126 126
         
127 127
         return $out;
128 128
     }
129 129
 
130 130
 
131 131
     // logger
132
-    protected function ao_logger($logmsg,$appendHTML=true) {
132
+    protected function ao_logger($logmsg, $appendHTML = true) {
133 133
         if ($appendHTML) {
134
-            $logmsg="<!--noptimize--><!-- ".$logmsg." --><!--/noptimize-->";
135
-            $this->content.=$logmsg;
134
+            $logmsg = "<!--noptimize--><!-- ".$logmsg." --><!--/noptimize-->";
135
+            $this->content .= $logmsg;
136 136
         } else {
137 137
             error_log("Autoptimize: ".$logmsg);
138 138
         }
@@ -140,7 +140,7 @@  discard block
 block discarded – undo
140 140
 
141 141
     // hide everything between noptimize-comment tags
142 142
     protected function hide_noptimize($noptimize_in) {
143
-        if ( preg_match( '/<!--\s?noptimize\s?-->/', $noptimize_in ) ) { 
143
+        if (preg_match('/<!--\s?noptimize\s?-->/', $noptimize_in)) { 
144 144
             $noptimize_out = preg_replace_callback(
145 145
                 '#<!--\s?noptimize\s?-->.*?<!--\s?/\s?noptimize\s?-->#is',
146 146
                 create_function(
@@ -157,7 +157,7 @@  discard block
 block discarded – undo
157 157
     
158 158
     // unhide noptimize-tags
159 159
     protected function restore_noptimize($noptimize_in) {
160
-        if ( strpos( $noptimize_in, '%%NOPTIMIZE%%' ) !== false ) { 
160
+        if (strpos($noptimize_in, '%%NOPTIMIZE%%') !== false) { 
161 161
             $noptimize_out = preg_replace_callback(
162 162
                 '#%%NOPTIMIZE%%(.*?)%%NOPTIMIZE%%#is',
163 163
                 create_function(
@@ -173,7 +173,7 @@  discard block
 block discarded – undo
173 173
     }
174 174
 
175 175
     protected function hide_iehacks($iehacks_in) {
176
-        if ( strpos( $iehacks_in, '<!--[if' ) !== false ) { 
176
+        if (strpos($iehacks_in, '<!--[if') !== false) { 
177 177
             $iehacks_out = preg_replace_callback(
178 178
                 '#<!--\[if.*?\[endif\]-->#is',
179 179
                 create_function(
@@ -189,7 +189,7 @@  discard block
 block discarded – undo
189 189
     }
190 190
 
191 191
     protected function restore_iehacks($iehacks_in) {
192
-        if ( strpos( $iehacks_in, '%%IEHACK%%' ) !== false ) { 
192
+        if (strpos($iehacks_in, '%%IEHACK%%') !== false) { 
193 193
             $iehacks_out = preg_replace_callback(
194 194
                 '#%%IEHACK%%(.*?)%%IEHACK%%#is',
195 195
                 create_function(
@@ -199,13 +199,13 @@  discard block
 block discarded – undo
199 199
                 $iehacks_in
200 200
             );
201 201
         } else {
202
-            $iehacks_out=$iehacks_in;
202
+            $iehacks_out = $iehacks_in;
203 203
         }
204 204
         return $iehacks_out;
205 205
     }
206 206
 
207 207
     protected function hide_comments($comments_in) {
208
-        if ( strpos( $comments_in, '<!--' ) !== false ) {
208
+        if (strpos($comments_in, '<!--') !== false) {
209 209
             $comments_out = preg_replace_callback(
210 210
                 '#<!--.*?-->#is',
211 211
                 create_function(
@@ -221,7 +221,7 @@  discard block
 block discarded – undo
221 221
     }
222 222
 
223 223
     protected function restore_comments($comments_in) {
224
-        if ( strpos( $comments_in, '%%COMMENTS%%' ) !== false ) {
224
+        if (strpos($comments_in, '%%COMMENTS%%') !== false) {
225 225
             $comments_out = preg_replace_callback(
226 226
                 '#%%COMMENTS%%(.*?)%%COMMENTS%%#is',
227 227
                 create_function(
@@ -231,31 +231,31 @@  discard block
 block discarded – undo
231 231
                 $comments_in
232 232
             );
233 233
         } else {
234
-            $comments_out=$comments_in;
234
+            $comments_out = $comments_in;
235 235
         }
236 236
         return $comments_out;
237 237
     }
238 238
 
239
-    protected function url_replace_cdn( $url ) {
239
+    protected function url_replace_cdn($url) {
240 240
         // API filter to change base CDN URL
241
-        $cdn_url = apply_filters( 'autoptimize_filter_base_cdnurl', $this->cdn_url );
241
+        $cdn_url = apply_filters('autoptimize_filter_base_cdnurl', $this->cdn_url);
242 242
 
243
-        if ( !empty($cdn_url) )  {
243
+        if (!empty($cdn_url)) {
244 244
             // prepend domain-less absolute URL's
245
-            if ( ( substr( $url, 0, 1 ) === '/' ) && ( substr( $url, 1, 1 ) !== '/' ) ) {
246
-                $url = rtrim( $cdn_url, '/' ) . $url;
245
+            if ((substr($url, 0, 1) === '/') && (substr($url, 1, 1) !== '/')) {
246
+                $url = rtrim($cdn_url, '/').$url;
247 247
             } else {
248 248
                 // get wordpress base URL
249
-                $WPSiteBreakdown = parse_url( AUTOPTIMIZE_WP_SITE_URL );
250
-                $WPBaseUrl       = $WPSiteBreakdown['scheme'] . '://' . $WPSiteBreakdown['host'];
251
-                if ( ! empty( $WPSiteBreakdown['port'] ) ) {
252
-                    $WPBaseUrl .= ":" . $WPSiteBreakdown['port'];
249
+                $WPSiteBreakdown = parse_url(AUTOPTIMIZE_WP_SITE_URL);
250
+                $WPBaseUrl       = $WPSiteBreakdown['scheme'].'://'.$WPSiteBreakdown['host'];
251
+                if (!empty($WPSiteBreakdown['port'])) {
252
+                    $WPBaseUrl .= ":".$WPSiteBreakdown['port'];
253 253
                 }
254 254
                 // replace full url's with scheme
255
-                $tmp_url = str_replace( $WPBaseUrl, rtrim( $cdn_url, '/' ), $url );
256
-                if ( $tmp_url === $url ) {
255
+                $tmp_url = str_replace($WPBaseUrl, rtrim($cdn_url, '/'), $url);
256
+                if ($tmp_url === $url) {
257 257
                     // last attempt; replace scheme-less URL's
258
-                    $url = str_replace( preg_replace( '/https?:/', '', $WPBaseUrl ), rtrim( $cdn_url, '/' ), $url );
258
+                    $url = str_replace(preg_replace('/https?:/', '', $WPBaseUrl), rtrim($cdn_url, '/'), $url);
259 259
                 } else {
260 260
                     $url = $tmp_url;
261 261
                 }
@@ -263,32 +263,32 @@  discard block
 block discarded – undo
263 263
         }
264 264
 
265 265
         // allow API filter to alter URL after CDN replacement
266
-        $url = apply_filters( 'autoptimize_filter_base_replace_cdn', $url );
266
+        $url = apply_filters('autoptimize_filter_base_replace_cdn', $url);
267 267
         return $url;
268 268
     }
269 269
 
270
-    protected function inject_in_html($payload,$replaceTag) {
271
-        if (strpos($this->content,$replaceTag[0])!== false) {
272
-            if ($replaceTag[1]==="after") {
273
-                $replaceBlock=$replaceTag[0].$payload;
274
-            } else if ($replaceTag[1]==="replace"){
275
-                $replaceBlock=$payload;
270
+    protected function inject_in_html($payload, $replaceTag) {
271
+        if (strpos($this->content, $replaceTag[0]) !== false) {
272
+            if ($replaceTag[1] === "after") {
273
+                $replaceBlock = $replaceTag[0].$payload;
274
+            } else if ($replaceTag[1] === "replace") {
275
+                $replaceBlock = $payload;
276 276
             } else {
277
-                $replaceBlock=$payload.$replaceTag[0];
277
+                $replaceBlock = $payload.$replaceTag[0];
278 278
             }
279
-            $this->content = substr_replace($this->content,$replaceBlock,strpos($this->content,$replaceTag[0]),strlen($replaceTag[0]));
279
+            $this->content = substr_replace($this->content, $replaceBlock, strpos($this->content, $replaceTag[0]), strlen($replaceTag[0]));
280 280
         } else {
281 281
             $this->content .= $payload;
282 282
             if (!$this->tagWarning) {
283
-                $this->content .= "<!--noptimize--><!-- Autoptimize found a problem with the HTML in your Theme, tag \"".str_replace(array("<",">"),"",$replaceTag[0])."\" missing --><!--/noptimize-->";
284
-                $this->tagWarning=true;
283
+                $this->content .= "<!--noptimize--><!-- Autoptimize found a problem with the HTML in your Theme, tag \"".str_replace(array("<", ">"), "", $replaceTag[0])."\" missing --><!--/noptimize-->";
284
+                $this->tagWarning = true;
285 285
             }
286 286
         }
287 287
     }
288 288
     
289 289
     protected function isremovable($tag, $removables) {
290 290
         foreach ($removables as $match) {
291
-            if (strpos($tag,$match)!==false) {
291
+            if (strpos($tag, $match) !== false) {
292 292
                 return true;
293 293
             }
294 294
         }
@@ -297,7 +297,7 @@  discard block
 block discarded – undo
297 297
     
298 298
     // inject already minified code in optimized JS/CSS
299 299
     protected function inject_minified($in) {
300
-        if ( strpos( $in, '%%INJECTLATER%%' ) !== false ) {
300
+        if (strpos($in, '%%INJECTLATER%%') !== false) {
301 301
             $out = preg_replace_callback(
302 302
                 '#%%INJECTLATER%%(.*?)%%INJECTLATER%%#is',
303 303
                 create_function(
@@ -342,47 +342,47 @@  discard block
 block discarded – undo
342 342
     
343 343
     protected function minify_single($pathIn) {
344 344
 		// determine JS or CSS and set var (also mimetype), return false if neither
345
-		if ( $this->str_ends_in($pathIn,".js") === true ) {
346
-			$codeType="js";
347
-			$codeMime="text/javascript";
348
-		} else if ( $this->str_ends_in($pathIn,".css") === true ) {
349
-			$codeType="css";
350
-			$codeMime="text/css";			
345
+		if ($this->str_ends_in($pathIn, ".js") === true) {
346
+			$codeType = "js";
347
+			$codeMime = "text/javascript";
348
+		} else if ($this->str_ends_in($pathIn, ".css") === true) {
349
+			$codeType = "css";
350
+			$codeMime = "text/css";			
351 351
 		} else {
352 352
 			return false;
353 353
 		}
354 354
 		
355 355
 		// if min.js or min.css return false
356
-		if (( $this->str_ends_in($pathIn,"-min.".$codeType) === true ) || ( $this->str_ends_in($pathIn,".min.".$codeType) === true ) || ( $this->str_ends_in($pathIn,"js/jquery/jquery.js") === true ) ) {
356
+		if (($this->str_ends_in($pathIn, "-min.".$codeType) === true) || ($this->str_ends_in($pathIn, ".min.".$codeType) === true) || ($this->str_ends_in($pathIn, "js/jquery/jquery.js") === true)) {
357 357
 			return false;
358 358
 		}
359 359
 		
360 360
 		// read file, return false if empty
361 361
 		$_toMinify = file_get_contents($pathIn);
362
-		if ( empty($_toMinify) ) return false;
362
+		if (empty($_toMinify)) return false;
363 363
 		
364 364
 		// check cache
365 365
 		$_md5hash = "single_".md5($_toMinify);
366
-		$_cache = new autoptimizeCache($_md5hash,$codeType);
367
-		if ($_cache->check() ) {
366
+		$_cache = new autoptimizeCache($_md5hash, $codeType);
367
+		if ($_cache->check()) {
368 368
 			$_CachedMinifiedUrl = AUTOPTIMIZE_CACHE_URL.$_cache->getname();
369 369
 		} else {
370 370
 			// if not in cache first minify
371 371
 			$_Minified = $_toMinify;
372 372
 			if ($codeType === "js") {
373
-				if (class_exists('JSMin') && apply_filters( 'autoptimize_js_do_minify' , true)) {
374
-					if (@is_callable(array("JSMin","minify"))) {
373
+				if (class_exists('JSMin') && apply_filters('autoptimize_js_do_minify', true)) {
374
+					if (@is_callable(array("JSMin", "minify"))) {
375 375
 						$tmp_code = trim(JSMin::minify($_toMinify));
376 376
 					}
377 377
 				}
378 378
 			} else if ($codeType === "css") {
379 379
                 if (class_exists('Minify_CSS_Compressor')) {
380 380
 					$tmp_code = trim(Minify_CSS_Compressor::process($_toMinify));
381
-                } else if(class_exists('CSSmin')) {
381
+                } else if (class_exists('CSSmin')) {
382 382
                     $cssmin = new CSSmin();
383
-                    if (method_exists($cssmin,"run")) {
383
+                    if (method_exists($cssmin, "run")) {
384 384
                         $tmp_code = trim($cssmin->run($_toMinify));
385
-                    } elseif (@is_callable(array($cssmin,"minify"))) {
385
+                    } elseif (@is_callable(array($cssmin, "minify"))) {
386 386
                         $tmp_code = trim(CssMin::minify($_toMinify));
387 387
                     }
388 388
                 }
@@ -392,7 +392,7 @@  discard block
 block discarded – undo
392 392
 				unset($tmp_code);
393 393
 			}
394 394
 			// and then cache
395
-			$_cache->cache($_Minified,$codeMime);
395
+			$_cache->cache($_Minified, $codeMime);
396 396
 			$_CachedMinifiedUrl = AUTOPTIMIZE_CACHE_URL.$_cache->getname();
397 397
 		}
398 398
 		unset($_cache);
@@ -403,10 +403,10 @@  discard block
 block discarded – undo
403 403
 		return $_CachedMinifiedUrl;
404 404
 	}
405 405
 	
406
-	protected function str_ends_in($haystack,$needle) {
406
+	protected function str_ends_in($haystack, $needle) {
407 407
 		$needleLength = strlen($needle);
408 408
 		$haystackLength = strlen($haystack);
409
-		$lastPos=strrpos($haystack,$needle);
409
+		$lastPos = strrpos($haystack, $needle);
410 410
 		if ($lastPos === $haystackLength - $needleLength) {
411 411
 			return true;
412 412
 		} else {
Please login to merge, or discard this patch.
classes/autoptimizeScripts.php 1 patch
Spacing   +112 added lines, -112 removed lines patch added patch discarded remove patch
@@ -1,11 +1,11 @@  discard block
 block discarded – undo
1 1
 <?php
2
-if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+if (!defined('ABSPATH')) exit; // Exit if accessed directly
3 3
 
4 4
 class autoptimizeScripts extends autoptimizeBase {
5 5
     private $scripts = array();
6
-    private $dontmove = array('document.write','html5.js','show_ads.js','google_ad','blogcatalog.com/w','tweetmeme.com/i','mybloglog.com/','histats.com/js','ads.smowtion.com/ad.js','statcounter.com/counter/counter.js','widgets.amung.us','ws.amazon.com/widgets','media.fastclick.net','/ads/','comment-form-quicktags/quicktags.php','edToolbar','intensedebate.com','scripts.chitika.net/','_gaq.push','jotform.com/','admin-bar.min.js','GoogleAnalyticsObject','plupload.full.min.js','syntaxhighlighter','adsbygoogle','gist.github.com','_stq','nonce','post_id','data-noptimize');
7
-    private $domove = array('gaJsHost','load_cmc','jd.gallery.transitions.js','swfobject.embedSWF(','tiny_mce.js','tinyMCEPreInit.go');
8
-    private $domovelast = array('addthis.com','/afsonline/show_afs_search.js','disqus.js','networkedblogs.com/getnetworkwidget','infolinks.com/js/','jd.gallery.js.php','jd.gallery.transitions.js','swfobject.embedSWF(','linkwithin.com/widget.js','tiny_mce.js','tinyMCEPreInit.go');
6
+    private $dontmove = array('document.write', 'html5.js', 'show_ads.js', 'google_ad', 'blogcatalog.com/w', 'tweetmeme.com/i', 'mybloglog.com/', 'histats.com/js', 'ads.smowtion.com/ad.js', 'statcounter.com/counter/counter.js', 'widgets.amung.us', 'ws.amazon.com/widgets', 'media.fastclick.net', '/ads/', 'comment-form-quicktags/quicktags.php', 'edToolbar', 'intensedebate.com', 'scripts.chitika.net/', '_gaq.push', 'jotform.com/', 'admin-bar.min.js', 'GoogleAnalyticsObject', 'plupload.full.min.js', 'syntaxhighlighter', 'adsbygoogle', 'gist.github.com', '_stq', 'nonce', 'post_id', 'data-noptimize');
7
+    private $domove = array('gaJsHost', 'load_cmc', 'jd.gallery.transitions.js', 'swfobject.embedSWF(', 'tiny_mce.js', 'tinyMCEPreInit.go');
8
+    private $domovelast = array('addthis.com', '/afsonline/show_afs_search.js', 'disqus.js', 'networkedblogs.com/getnetworkwidget', 'infolinks.com/js/', 'jd.gallery.js.php', 'jd.gallery.transitions.js', 'swfobject.embedSWF(', 'linkwithin.com/widget.js', 'tiny_mce.js', 'tinyMCEPreInit.go');
9 9
     private $trycatch = false;
10 10
     private $alreadyminified = false;
11 11
     private $forcehead = true;
@@ -21,70 +21,70 @@  discard block
 block discarded – undo
21 21
     
22 22
     //Reads the page and collects script tags
23 23
     public function read($options) {
24
-        $noptimizeJS = apply_filters( 'autoptimize_filter_js_noptimize', false, $this->content );
24
+        $noptimizeJS = apply_filters('autoptimize_filter_js_noptimize', false, $this->content);
25 25
         if ($noptimizeJS) return false;
26 26
 
27 27
         // only optimize known good JS?
28
-        $whitelistJS = apply_filters( 'autoptimize_filter_js_whitelist', "" );
28
+        $whitelistJS = apply_filters('autoptimize_filter_js_whitelist', "");
29 29
         if (!empty($whitelistJS)) {
30
-            $this->whitelist = array_filter(array_map('trim',explode(",",$whitelistJS)));
30
+            $this->whitelist = array_filter(array_map('trim', explode(",", $whitelistJS)));
31 31
         }
32 32
 
33 33
         // is there JS we should simply remove
34
-        $removableJS = apply_filters( 'autoptimize_filter_js_removables', '');
34
+        $removableJS = apply_filters('autoptimize_filter_js_removables', '');
35 35
         if (!empty($removableJS)) {
36
-            $this->jsremovables = array_filter(array_map('trim',explode(",",$removableJS)));
36
+            $this->jsremovables = array_filter(array_map('trim', explode(",", $removableJS)));
37 37
         }
38 38
 
39 39
         // only header?
40
-        if( apply_filters('autoptimize_filter_js_justhead',$options['justhead']) == true ) {
41
-            $content = explode('</head>',$this->content,2);
40
+        if (apply_filters('autoptimize_filter_js_justhead', $options['justhead']) == true) {
41
+            $content = explode('</head>', $this->content, 2);
42 42
             $this->content = $content[0].'</head>';
43 43
             $this->restofcontent = $content[1];
44 44
         }
45 45
         
46 46
         // include inline?
47
-        if( apply_filters('autoptimize_js_include_inline',$options['include_inline']) == true ) {
47
+        if (apply_filters('autoptimize_js_include_inline', $options['include_inline']) == true) {
48 48
             $this->include_inline = true;
49 49
         }
50 50
 
51 51
         // filter to "late inject minified JS", default to true for now (it is faster)
52
-        $this->inject_min_late = apply_filters('autoptimize_filter_js_inject_min_late',true);
52
+        $this->inject_min_late = apply_filters('autoptimize_filter_js_inject_min_late', true);
53 53
 
54 54
         // filters to override hardcoded do(nt)move(last) array contents (array in, array out!)
55
-        $this->dontmove = apply_filters( 'autoptimize_filter_js_dontmove', $this->dontmove );        
56
-        $this->domovelast = apply_filters( 'autoptimize_filter_js_movelast', $this->domovelast );
57
-        $this->domove = apply_filters( 'autoptimize_filter_js_domove', $this->domove );
55
+        $this->dontmove = apply_filters('autoptimize_filter_js_dontmove', $this->dontmove);        
56
+        $this->domovelast = apply_filters('autoptimize_filter_js_movelast', $this->domovelast);
57
+        $this->domove = apply_filters('autoptimize_filter_js_domove', $this->domove);
58 58
 
59 59
         // get extra exclusions settings or filter
60 60
         $excludeJS = $options['js_exclude'];
61
-        $excludeJS = apply_filters( 'autoptimize_filter_js_exclude', $excludeJS );
62
-        if ($excludeJS!=="") {
61
+        $excludeJS = apply_filters('autoptimize_filter_js_exclude', $excludeJS);
62
+        if ($excludeJS !== "") {
63 63
             if (is_array($excludeJS)) {
64
-                if(($removeKeys = array_keys($excludeJS,"remove")) !== false) {
64
+                if (($removeKeys = array_keys($excludeJS, "remove")) !== false) {
65 65
                     foreach ($removeKeys as $removeKey) {
66 66
                         unset($excludeJS[$removeKey]);
67
-                        $this->jsremovables[]=$removeKey;
67
+                        $this->jsremovables[] = $removeKey;
68 68
                     }
69 69
                 }
70 70
                 $exclJSArr = array_keys($excludeJS);
71 71
             } else {
72
-                $exclJSArr = array_filter(array_map('trim',explode(",",$excludeJS)));
72
+                $exclJSArr = array_filter(array_map('trim', explode(",", $excludeJS)));
73 73
             }
74
-            $this->dontmove = array_merge($exclJSArr,$this->dontmove);
74
+            $this->dontmove = array_merge($exclJSArr, $this->dontmove);
75 75
         }
76 76
 
77 77
         //Should we add try-catch?
78
-        if($options['trycatch'] == true)
78
+        if ($options['trycatch'] == true)
79 79
             $this->trycatch = true;
80 80
 
81 81
         // force js in head?    
82
-        if($options['forcehead'] == true) {
82
+        if ($options['forcehead'] == true) {
83 83
             $this->forcehead = true;
84 84
         } else {
85 85
             $this->forcehead = false;
86 86
         }
87
-        $this->forcehead = apply_filters( 'autoptimize_filter_js_forcehead', $this->forcehead );
87
+        $this->forcehead = apply_filters('autoptimize_filter_js_forcehead', $this->forcehead);
88 88
 
89 89
         // get cdn url
90 90
         $this->cdn_url = $options['cdn_url'];
@@ -99,24 +99,24 @@  discard block
 block discarded – undo
99 99
         $this->content = $this->hide_comments($this->content);
100 100
 
101 101
         // Get script files
102
-        if (preg_match_all('#<script.*</script>#Usmi',$this->content,$matches)) {
103
-            foreach($matches[0] as $tag) {
102
+        if (preg_match_all('#<script.*</script>#Usmi', $this->content, $matches)) {
103
+            foreach ($matches[0] as $tag) {
104 104
                 // only consider script aggregation for types whitelisted in should_aggregate-function
105
-                if( !$this->should_aggregate($tag) ) {
106
-                    $tag='';
105
+                if (!$this->should_aggregate($tag)) {
106
+                    $tag = '';
107 107
                     continue;
108 108
                 }
109 109
 
110
-                if (preg_match('#<script[^>]*src=("|\')([^>]*)("|\')#Usmi',$tag,$source)) {
110
+                if (preg_match('#<script[^>]*src=("|\')([^>]*)("|\')#Usmi', $tag, $source)) {
111 111
                     // non-inline script
112
-                    if ($this->isremovable($tag,$this->jsremovables)) {
113
-                        $this->content = str_replace($tag,'',$this->content);
112
+                    if ($this->isremovable($tag, $this->jsremovables)) {
113
+                        $this->content = str_replace($tag, '', $this->content);
114 114
                         continue;
115 115
                     }
116 116
                     
117
-                    $url = current(explode('?',$source[2],2));
117
+                    $url = current(explode('?', $source[2], 2));
118 118
                     $path = $this->getpath($url);
119
-                    if($path !== false && preg_match('#\.js$#',$path) && $this->ismergeable($tag)) {
119
+                    if ($path !== false && preg_match('#\.js$#', $path) && $this->ismergeable($tag)) {
120 120
                         // ok to optimize, add to array
121 121
                         $this->scripts[] = $path;
122 122
                     } else {
@@ -127,14 +127,14 @@  discard block
 block discarded – undo
127 127
                         if (is_array($excludeJS)) {
128 128
                             // should we add flags?
129 129
                             foreach ($excludeJS as $exclTag => $exclFlags) {
130
-                                if ( strpos($origTag,$exclTag)!==false && in_array($exclFlags,array("async","defer")) ) {
131
-                                   $newTag = str_replace('<script ','<script '.$exclFlags.' ',$newTag);
130
+                                if (strpos($origTag, $exclTag) !== false && in_array($exclFlags, array("async", "defer"))) {
131
+                                   $newTag = str_replace('<script ', '<script '.$exclFlags.' ', $newTag);
132 132
                                 }
133 133
                             }
134 134
                         }
135 135
                         
136 136
    						// should we minify the non-aggregated script?
137
-						if ($path && apply_filters('autoptimize_filter_js_minify_excluded',false)) {
137
+						if ($path && apply_filters('autoptimize_filter_js_minify_excluded', false)) {
138 138
 							$_CachedMinifiedUrl = $this->minify_single($path);
139 139
 
140 140
 							// replace orig URL with minified URL from cache if so
@@ -143,22 +143,22 @@  discard block
 block discarded – undo
143 143
 							}
144 144
 							
145 145
 							// remove querystring from URL in newTag
146
-							$_querystr = next(explode('?',$source[2],2));
147
-							$newTag = str_replace("?".$_querystr,"",$newTag);
146
+							$_querystr = next(explode('?', $source[2], 2));
147
+							$newTag = str_replace("?".$_querystr, "", $newTag);
148 148
 						}
149 149
 
150 150
 						// should we move the non-aggregated script?
151
-                        if( $this->ismovable($newTag) ) {
151
+                        if ($this->ismovable($newTag)) {
152 152
                             // can be moved, flags and all
153
-                            if( $this->movetolast($newTag) )    {
153
+                            if ($this->movetolast($newTag)) {
154 154
                                 $this->move['last'][] = $newTag;
155 155
                             } else {
156 156
                                 $this->move['first'][] = $newTag;
157 157
                             }
158 158
                         } else {
159 159
                             // cannot be moved, so if flag was added re-inject altered tag immediately
160
-                            if ( $origTag !== $newTag ) {
161
-                                $this->content = str_replace($origTag,$newTag,$this->content);
160
+                            if ($origTag !== $newTag) {
161
+                                $this->content = str_replace($origTag, $newTag, $this->content);
162 162
                                 $origTag = '';
163 163
                             }
164 164
                             // and forget about the $tag (not to be touched any more)
@@ -167,23 +167,23 @@  discard block
 block discarded – undo
167 167
                     }
168 168
                 } else {
169 169
                     // Inline script
170
-                    if ($this->isremovable($tag,$this->jsremovables)) {
171
-                        $this->content = str_replace($tag,'',$this->content);
170
+                    if ($this->isremovable($tag, $this->jsremovables)) {
171
+                        $this->content = str_replace($tag, '', $this->content);
172 172
                         continue;
173 173
                     }
174 174
                     
175 175
                     // unhide comments, as javascript may be wrapped in comment-tags for old times' sake
176 176
                     $tag = $this->restore_comments($tag);
177
-                    if($this->ismergeable($tag) && ( $this->include_inline )) {
178
-                        preg_match('#<script.*>(.*)</script>#Usmi',$tag,$code);
179
-                        $code = preg_replace('#.*<!\[CDATA\[(?:\s*\*/)?(.*)(?://|/\*)\s*?\]\]>.*#sm','$1',$code[1]);
180
-                        $code = preg_replace('/(?:^\\s*<!--\\s*|\\s*(?:\\/\\/)?\\s*-->\\s*$)/','',$code);
177
+                    if ($this->ismergeable($tag) && ($this->include_inline)) {
178
+                        preg_match('#<script.*>(.*)</script>#Usmi', $tag, $code);
179
+                        $code = preg_replace('#.*<!\[CDATA\[(?:\s*\*/)?(.*)(?://|/\*)\s*?\]\]>.*#sm', '$1', $code[1]);
180
+                        $code = preg_replace('/(?:^\\s*<!--\\s*|\\s*(?:\\/\\/)?\\s*-->\\s*$)/', '', $code);
181 181
                         $this->scripts[] = 'INLINE;'.$code;
182 182
                     } else {
183 183
                         // Can we move this?
184
-                        $autoptimize_js_moveable = apply_filters( 'autoptimize_js_moveable', '', $tag );
185
-                        if( $this->ismovable($tag) || $autoptimize_js_moveable !== '' ) {
186
-                            if( $this->movetolast($tag) || $autoptimize_js_moveable === 'last' ) {
184
+                        $autoptimize_js_moveable = apply_filters('autoptimize_js_moveable', '', $tag);
185
+                        if ($this->ismovable($tag) || $autoptimize_js_moveable !== '') {
186
+                            if ($this->movetolast($tag) || $autoptimize_js_moveable === 'last') {
187 187
                                 $this->move['last'][] = $tag;
188 188
                             } else {
189 189
                                 $this->move['first'][] = $tag;
@@ -198,7 +198,7 @@  discard block
 block discarded – undo
198 198
                 }
199 199
                 
200 200
                 //Remove the original script tag
201
-                $this->content = str_replace($tag,'',$this->content);
201
+                $this->content = str_replace($tag, '', $this->content);
202 202
             }
203 203
             
204 204
             return true;
@@ -210,37 +210,37 @@  discard block
 block discarded – undo
210 210
     
211 211
     //Joins and optimizes JS
212 212
     public function minify() {
213
-        foreach($this->scripts as $script) {
214
-            if(preg_match('#^INLINE;#',$script)) {
213
+        foreach ($this->scripts as $script) {
214
+            if (preg_match('#^INLINE;#', $script)) {
215 215
                 //Inline script
216
-                $script = preg_replace('#^INLINE;#','',$script);
217
-                $script = rtrim( $script, ";\n\t\r" ) . ';';
216
+                $script = preg_replace('#^INLINE;#', '', $script);
217
+                $script = rtrim($script, ";\n\t\r").';';
218 218
                 //Add try-catch?
219
-                if($this->trycatch) {
219
+                if ($this->trycatch) {
220 220
                     $script = 'try{'.$script.'}catch(e){}';
221 221
                 }
222
-                $tmpscript = apply_filters( 'autoptimize_js_individual_script', $script, "" );
223
-                if ( has_filter('autoptimize_js_individual_script') && !empty($tmpscript) ) {
224
-                    $script=$tmpscript;
225
-                    $this->alreadyminified=true;
222
+                $tmpscript = apply_filters('autoptimize_js_individual_script', $script, "");
223
+                if (has_filter('autoptimize_js_individual_script') && !empty($tmpscript)) {
224
+                    $script = $tmpscript;
225
+                    $this->alreadyminified = true;
226 226
                 }
227
-                $this->jscode .= "\n" . $script;
227
+                $this->jscode .= "\n".$script;
228 228
             } else {
229 229
                 //External script
230
-                if($script !== false && file_exists($script) && is_readable($script)) {
230
+                if ($script !== false && file_exists($script) && is_readable($script)) {
231 231
                     $scriptsrc = file_get_contents($script);
232
-                    $scriptsrc = preg_replace('/\x{EF}\x{BB}\x{BF}/','',$scriptsrc);
233
-                    $scriptsrc = rtrim($scriptsrc,";\n\t\r").';';
232
+                    $scriptsrc = preg_replace('/\x{EF}\x{BB}\x{BF}/', '', $scriptsrc);
233
+                    $scriptsrc = rtrim($scriptsrc, ";\n\t\r").';';
234 234
                     //Add try-catch?
235
-                    if($this->trycatch) {
235
+                    if ($this->trycatch) {
236 236
                         $scriptsrc = 'try{'.$scriptsrc.'}catch(e){}';
237 237
                     }
238
-                    $tmpscriptsrc = apply_filters( 'autoptimize_js_individual_script', $scriptsrc, $script );
239
-                    if ( has_filter('autoptimize_js_individual_script') && !empty($tmpscriptsrc) ) {
240
-                        $scriptsrc=$tmpscriptsrc;
241
-                        $this->alreadyminified=true;
242
-                    } else if ((( strpos($script,"min.js") !== false ) || ( strpos($script,"wp-includes/js/jquery/jquery.js") !== false )) && ( $this->inject_min_late === true )) {
243
-                        $scriptsrc="%%INJECTLATER%%".base64_encode($script)."|".md5($scriptsrc)."%%INJECTLATER%%";
238
+                    $tmpscriptsrc = apply_filters('autoptimize_js_individual_script', $scriptsrc, $script);
239
+                    if (has_filter('autoptimize_js_individual_script') && !empty($tmpscriptsrc)) {
240
+                        $scriptsrc = $tmpscriptsrc;
241
+                        $this->alreadyminified = true;
242
+                    } else if (((strpos($script, "min.js") !== false) || (strpos($script, "wp-includes/js/jquery/jquery.js") !== false)) && ($this->inject_min_late === true)) {
243
+                        $scriptsrc = "%%INJECTLATER%%".base64_encode($script)."|".md5($scriptsrc)."%%INJECTLATER%%";
244 244
                     }
245 245
                     $this->jscode .= "\n".$scriptsrc;
246 246
                 }/*else{
@@ -251,24 +251,24 @@  discard block
 block discarded – undo
251 251
 
252 252
         //Check for already-minified code
253 253
         $this->md5hash = md5($this->jscode);
254
-        $ccheck = new autoptimizeCache($this->md5hash,'js');
255
-        if($ccheck->check()) {
254
+        $ccheck = new autoptimizeCache($this->md5hash, 'js');
255
+        if ($ccheck->check()) {
256 256
             $this->jscode = $ccheck->retrieve();
257 257
             return true;
258 258
         }
259 259
         unset($ccheck);
260 260
         
261 261
         //$this->jscode has all the uncompressed code now.
262
-        if ($this->alreadyminified!==true) {
263
-          if (class_exists('JSMin') && apply_filters( 'autoptimize_js_do_minify' , true)) {
264
-            if (@is_callable(array("JSMin","minify"))) {
262
+        if ($this->alreadyminified !== true) {
263
+          if (class_exists('JSMin') && apply_filters('autoptimize_js_do_minify', true)) {
264
+            if (@is_callable(array("JSMin", "minify"))) {
265 265
                 $tmp_jscode = trim(JSMin::minify($this->jscode));
266 266
                 if (!empty($tmp_jscode)) {
267 267
                     $this->jscode = $tmp_jscode;
268 268
                     unset($tmp_jscode);
269 269
                 }
270 270
                 $this->jscode = $this->inject_minified($this->jscode);
271
-                $this->jscode = apply_filters( 'autoptimize_js_after_minify', $this->jscode );
271
+                $this->jscode = apply_filters('autoptimize_js_after_minify', $this->jscode);
272 272
                 return true;
273 273
             } else {
274 274
                 $this->jscode = $this->inject_minified($this->jscode);
@@ -283,11 +283,11 @@  discard block
 block discarded – undo
283 283
     }
284 284
     
285 285
     //Caches the JS in uncompressed, deflated and gzipped form.
286
-    public function cache()    {
287
-        $cache = new autoptimizeCache($this->md5hash,'js');
288
-        if(!$cache->check()) {
286
+    public function cache() {
287
+        $cache = new autoptimizeCache($this->md5hash, 'js');
288
+        if (!$cache->check()) {
289 289
             //Cache our code
290
-            $cache->cache($this->jscode,'text/javascript');
290
+            $cache->cache($this->jscode, 'text/javascript');
291 291
         }
292 292
         $this->url = AUTOPTIMIZE_CACHE_URL.$cache->getname();
293 293
         $this->url = $this->url_replace_cdn($this->url);
@@ -296,32 +296,32 @@  discard block
 block discarded – undo
296 296
     // Returns the content
297 297
     public function getcontent() {
298 298
         // Restore the full content
299
-        if(!empty($this->restofcontent)) {
299
+        if (!empty($this->restofcontent)) {
300 300
             $this->content .= $this->restofcontent;
301 301
             $this->restofcontent = '';
302 302
         }
303 303
         
304 304
         // Add the scripts taking forcehead/ deferred (default) into account
305
-        if($this->forcehead == true) {
306
-            $replaceTag=array("</head>","before");
307
-            $defer="";
305
+        if ($this->forcehead == true) {
306
+            $replaceTag = array("</head>", "before");
307
+            $defer = "";
308 308
         } else {
309
-            $replaceTag=array("</body>","before");
310
-            $defer="defer ";
309
+            $replaceTag = array("</body>", "before");
310
+            $defer = "defer ";
311 311
         }
312 312
         
313
-        $defer = apply_filters( 'autoptimize_filter_js_defer', $defer );
313
+        $defer = apply_filters('autoptimize_filter_js_defer', $defer);
314 314
         $bodyreplacementpayload = '<script type="text/javascript" '.$defer.'src="'.$this->url.'"></script>';
315
-        $bodyreplacementpayload = apply_filters('autoptimize_filter_js_bodyreplacementpayload',$bodyreplacementpayload);
315
+        $bodyreplacementpayload = apply_filters('autoptimize_filter_js_bodyreplacementpayload', $bodyreplacementpayload);
316 316
 
317
-        $bodyreplacement = implode('',$this->move['first']);
317
+        $bodyreplacement = implode('', $this->move['first']);
318 318
         $bodyreplacement .= $bodyreplacementpayload;
319
-        $bodyreplacement .= implode('',$this->move['last']);
319
+        $bodyreplacement .= implode('', $this->move['last']);
320 320
 
321
-        $replaceTag = apply_filters( 'autoptimize_filter_js_replacetag', $replaceTag );
321
+        $replaceTag = apply_filters('autoptimize_filter_js_replacetag', $replaceTag);
322 322
 
323
-        if (strlen($this->jscode)>0) {
324
-            $this->inject_in_html($bodyreplacement,$replaceTag);
323
+        if (strlen($this->jscode) > 0) {
324
+            $this->inject_in_html($bodyreplacement, $replaceTag);
325 325
         }
326 326
         
327 327
         // restore comments
@@ -339,19 +339,19 @@  discard block
 block discarded – undo
339 339
     
340 340
     // Checks against the white- and blacklists
341 341
     private function ismergeable($tag) {
342
-		if (apply_filters('autoptimize_filter_js_dontaggregate',false)) {
342
+		if (apply_filters('autoptimize_filter_js_dontaggregate', false)) {
343 343
 			return false;
344 344
         } else if (!empty($this->whitelist)) {
345 345
             foreach ($this->whitelist as $match) {
346
-                if(strpos($tag,$match)!==false) {
346
+                if (strpos($tag, $match) !== false) {
347 347
                     return true;
348 348
                 }
349 349
             }
350 350
             // no match with whitelist
351 351
             return false;
352 352
         } else {
353
-            foreach($this->domove as $match) {
354
-                if(strpos($tag,$match)!==false)    {
353
+            foreach ($this->domove as $match) {
354
+                if (strpos($tag, $match) !== false) {
355 355
                     // Matched something
356 356
                     return false;
357 357
                 }
@@ -361,8 +361,8 @@  discard block
 block discarded – undo
361 361
                 return false;
362 362
             }
363 363
             
364
-            foreach($this->dontmove as $match) {
365
-                if(strpos($tag,$match)!==false)    {
364
+            foreach ($this->dontmove as $match) {
365
+                if (strpos($tag, $match) !== false) {
366 366
                     //Matched something
367 367
                     return false;
368 368
                 }
@@ -375,12 +375,12 @@  discard block
 block discarded – undo
375 375
     
376 376
     // Checks againstt the blacklist
377 377
     private function ismovable($tag) {
378
-        if ($this->include_inline !== true || apply_filters('autoptimize_filter_js_unmovable',true)) {
378
+        if ($this->include_inline !== true || apply_filters('autoptimize_filter_js_unmovable', true)) {
379 379
             return false;
380 380
         }
381 381
         
382
-        foreach($this->domove as $match) {
383
-            if(strpos($tag,$match)!==false)    {
382
+        foreach ($this->domove as $match) {
383
+            if (strpos($tag, $match) !== false) {
384 384
                 // Matched something
385 385
                 return true;
386 386
             }
@@ -390,8 +390,8 @@  discard block
 block discarded – undo
390 390
             return true;
391 391
         }
392 392
         
393
-        foreach($this->dontmove as $match) {
394
-            if(strpos($tag,$match)!==false) {
393
+        foreach ($this->dontmove as $match) {
394
+            if (strpos($tag, $match) !== false) {
395 395
                 // Matched something
396 396
                 return false;
397 397
             }
@@ -402,8 +402,8 @@  discard block
 block discarded – undo
402 402
     }
403 403
     
404 404
     private function movetolast($tag) {
405
-        foreach($this->domovelast as $match) {
406
-            if(strpos($tag,$match)!==false)    {
405
+        foreach ($this->domovelast as $match) {
406
+            if (strpos($tag, $match) !== false) {
407 407
                 // Matched, return true
408 408
                 return true;
409 409
             }
@@ -429,10 +429,10 @@  discard block
 block discarded – undo
429 429
      * original function by https://github.com/zytzagoo/ on his AO fork, thanks Tomas!
430 430
      */
431 431
     public function should_aggregate($tag) {
432
-        preg_match('#<(script[^>]*)>#i',$tag,$scripttag);
433
-        if ( strpos($scripttag[1], 'type')===false ) {
432
+        preg_match('#<(script[^>]*)>#i', $tag, $scripttag);
433
+        if (strpos($scripttag[1], 'type') === false) {
434 434
             return true;
435
-        } else if ( preg_match('/type\s*=\s*["\']?(?:text|application)\/(?:javascript|ecmascript)["\']?/i', $scripttag[1]) ) {
435
+        } else if (preg_match('/type\s*=\s*["\']?(?:text|application)\/(?:javascript|ecmascript)["\']?/i', $scripttag[1])) {
436 436
             return true;
437 437
         } else {
438 438
             return false;
Please login to merge, or discard this patch.