/** * Decode a minify auto filename into an array of files. * * @param unknown $compressed * @param unknown $type * @return array */ public static function minify_filename_to_urls_for_minification($filename, $type) { $v = get_option('w3tc_minify'); $minify_filenames = @json_decode($v, true); if (!is_array($minify_filenames)) { $minify_filenames = array(); } $minify_filename = $filename . '.' . $type; if (!isset($minify_filenames[$minify_filename])) { return array(); } $urls_unverified = $minify_filenames[$minify_filename]; $urls = array(); foreach ($urls_unverified as $file) { $verified = false; if (Util_Environment::is_url($file)) { $c = Dispatcher::config(); $external = $c->get_array('minify.cache.files'); foreach ($external as $ext) { if (preg_match('#' . Util_Environment::get_url_regexp($ext) . '#', $file) && !$verified) { $verified = true; } } if (!$verified) { Minify_Core::debug_error(sprintf('Remote file not in external files/libraries list: "%s"', $file)); } } elseif (strpos($file, '..') != false || strpos($file, '//') !== false || strpos($file, '\\') !== false && strtoupper(substr(PHP_OS, 0, 3)) != 'WIN' || preg_match('/(?:^|[^\\.])\\.\\//', $file) || !preg_match('/^[a-zA-Z0-9_.\\/-]|[\\\\]+$/', $file)) { $verified = false; Minify_Core::debug_error(sprintf('File path invalid: "%s"', $file)); } else { $verified = true; } if ($verified) { $urls[] = $file; } } return $urls; }
public function debug_error($error) { Minify_Core::debug_error($error); }