'.*', '\?' => '.', '\[\!' => '[^', '\[' => '[', '\]' => ']', '\.' => '\.', '\\' => '\\\\' ); // Forward slash in string must be in pattern: if ($flags & FNM_PATHNAME) { $transforms['\*'] = '[^/]*'; } // Back slash should not be escaped: if ($flags & FNM_NOESCAPE) { unset($transforms['\\']); } // Perform case insensitive match: if ($flags & FNM_CASEFOLD) { $modifiers .= 'i'; } // Period at start must be the same as pattern: if ($flags & FNM_PERIOD) { if (strpos($string, '.') === 0 && strpos($pattern, '.') !== 0) return false; } $pattern = '~^' . strtr(preg_quote($pattern, '~'), $transforms) . '$~' . $modifiers; return (boolean) preg_match($pattern, $string); } } function w3tc_get_theme($themename) { global $wp_version; if (version_compare($wp_version,'3.4', '<')) return get_theme($themename); $wp_themes = w3tc_get_themes(); if ( is_array( $wp_themes ) && array_key_exists( $themename, $wp_themes ) ) return $wp_themes[ $themename ]; return array(); } function w3tc_get_current_theme_name() { global $wp_version; if (version_compare($wp_version,'3.4', '>=')) return wp_get_theme()->get('Name'); return get_current_theme(); } function w3tc_get_current_theme() { global $wp_version; if (version_compare($wp_version,'3.4', '>=')) return wp_get_theme(); return get_theme(get_current_theme()); } function w3tc_get_themes() { global $wp_version; if (version_compare($wp_version,'3.4', '<')) return get_themes(); global $wp_themes; if ( isset( $wp_themes ) ) return $wp_themes; $themes = wp_get_themes(); $wp_themes = array(); foreach ( $themes as $theme ) { $name = $theme->get('Name'); if ( isset( $wp_themes[ $name ] ) ) $wp_themes[ $name . '/' . $theme->get_stylesheet() ] = $theme; else $wp_themes[ $name ] = $theme; } return $wp_themes; }