Пример #1
0
 /**
  * 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);
 }