!C99Shell v. 1.0 pre-release build #13!

Software: Apache. PHP/5.5.15 

uname -a: Windows NT SVR-DMZ 6.1 build 7600 (Windows Server 2008 R2 Enterprise Edition) i586 

SYSTEM 

Safe-mode: OFF (not secure)

C:\cumbreclima\wp-content\plugins\w3-total-cache\lib\W3\   drwxrwxrwx
Free 3.24 GB of 39.52 GB (8.2%)
Detected drives: [ a ] [ c ] [ d ] [ e ] [ f ]
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     PageSpeed.php (9.02 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

/**
 * Google Page Speed API
 */
define('W3TC_PAGESPEED_API_URL''https://www.googleapis.com/pagespeedonline/v1/runPagespeed');

/**
 * Class W3_PageSpeed
 */
class W3_PageSpeed {
    
/**
     * API Key
     *
     * @var string
     */
    
var $key '';

    
/**
     * PHP5-style constructor
     */
    
function __construct() {
        
$config w3_instance('W3_Config');

        
$this->key $config->get_string('widget.pagespeed.key');
    }

    
/**
     * Analyze URL
     *
     * @param string $url
     * @param bool $force
     * @return array|bool|mixed|null
     */
    
function analyze($url$force false) {
        
$results null;

        if (!
$force) {
            
$results $this->_load($url);
        }

        if (
$results === null) {
            
$json $this->_request($url);

            if (
$json) {
                
$results $this->_parse($json);

                if (
$results) {
                    
$this->_sort($results);
                }
            }

            
$this->_store($url$results);
        }

        return 
$results;
    }

    
/**
     * Make API request
     *
     * @param string $url
     * @return string
     */
    
function _request($url) {
        
w3_require_once(W3TC_INC_DIR '/functions/http.php');
        
w3_require_once(W3TC_INC_DIR '/functions/url.php');

        
$request_url w3_url_format(W3TC_PAGESPEED_API_URL, array(
            
'url' => $url,
            
'key' => $this->key,
        ));

        
$response w3_http_get($request_url);

        if (!
is_wp_error($response) && $response['response']['code'] == 200) {
            return 
$response['body'];
        }

        return 
false;
    }

    
/**
     * Parse response
     *
     * @param string $json
     * @return array|bool
     */
    
function _parse($json) {
        
$data json_decode($json);
        
$results false;

        if (isset(
$data->formattedResults)) {
            
$results = array(
                
'url' => $data->id,
                
'code' => $data->responseCode,
                
'title' => $data->title,
                
'score' => $data->score,
                
'rules' => array()
            );

            foreach ((array) 
$data->formattedResults->ruleResults as $i => $rule_result) {
                
$results['rules'][$i] = array(
                    
'name' => $rule_result->localizedRuleName,
                    
'score' => $rule_result->ruleScore,
                    
'impact' => $rule_result->ruleImpact,
                    
'priority' => $this->_get_priority($rule_result->ruleImpact),
                    
'resolution' => $this->_get_resolution($rule_result->localizedRuleName),
                    
'blocks' => array()
                );

                if (isset(
$rule_result->urlBlocks)) {
                    foreach ((array) 
$rule_result->urlBlocks as $j => $url_block) {
                        
$args = isset( $url_block->header->args ) ? $url_block->header->args : array();
                        
$results['rules'][$i]['blocks'][$j] = array(
                            
'header' => $this->_format_string$url_block->header->format$args ),
                            
'urls' => array()
                        );

                        if (isset(
$url_block->urls)) {
                            foreach ((array) 
$url_block->urls as $k => $url) {
                                
$args = isset( $url->result->args ) ? $url->result->args : array();
                                
$results['rules'][$i]['blocks'][$j]['urls'][$k] = array(
                                    
'result' => $this->_format_string$url->result->format$args )
                                );
                            }
                        }
                    }
                }
            }
        }

        return 
$results;
    }

    
/**
     * Returns rule priority by impact
     *
     * @param float $impact
     * @return string
     */
    
function _get_priority($impact) {
        if (
$impact 3) {
            
$priority 'low';
        } elseif (
$impact >= && $impact <= 10) {
            
$priority 'medium';
        } else {
            
$priority 'high';
        }

        return 
$priority;
    }

    
/**
     * Returns resolution
     *
     * @param string $code
     * @return array
     */
    
function _get_resolution($code) {
        switch (
$code) {
            case 
'MinifyHTML':
                return array(
                    
'header' => 'Enable HTML Minify',
                    
'tab' => 'minify'
                
);

            case 
'MinifyJavaScript':
            case 
'DeferParsingJavaScript':
                return array(
                    
'header' => 'Enable JavaScript Minify',
                    
'tab' => 'minify'
                
);

            case 
'MinifyCss':
            case 
'PutCssInTheDocumentHead':
                return array(
                    
'header' => 'Enable CSS Minify',
                    
'tab' => 'minify'
                
);

            case 
'AvoidCssImport':
                return array(
                    
'header' => 'Enable CSS Minify and @import processing',
                    
'tab' => 'minify'
                
);

            case 
'OptimizeTheOrderOfStylesAndScripts':
                return array(
                    
'header' => 'Enable JavaScript and CSS Minify',
                    
'tab' => 'minify'
                
);

            case 
'PreferAsyncResources':
                return array(
                    
'header' => 'Switch to non-blocking JavaScript embedding',
                    
'tab' => 'minify'
                
);

            case 
'RemoveQueryStringsFromStaticResources':
                return array(
                    
'header' => 'Disable the "Prevent caching of objects after settings change" feature',
                    
'tab' => 'browsercache'
                
);

            case 
'LeverageBrowserCaching':
                return array(
                    
'header' => 'Enable the expires header on the Browser Cache Settings tab',
                    
'tab' => 'browsercache'
                
);

            case 
'SpecifyACacheValidator':
                return array(
                    
'header' => 'Enable the ETag header on the Browser Cache Settings tab',
                    
'tab' => 'browsercache'
                
);
        }

        return array();
    }

    
/**
     * Loads results from cache
     *
     * @param string $url
     * @return mixed|null
     */
    
function _load($url) {
        
$file $this->_get_cache_file($url);

        if (
is_readable($file)) {
            
$data = @file_get_contents($file);

            if (
$data) {
                return @
unserialize($data);
            }
        }

        return 
null;
    }

    
/**
     * Save results to cache
     *
     * @param string $url
     * @param array $results
     * @return bool|int
     */
    
function _store($url$results) {
        
$file $this->_get_cache_file($url);
        
$data serialize($results);

        return @
file_put_contents($file$data);
    }

    
/**
     * Returns cache file
     *
     * @param string $url
     * @return string
     */
    
function _get_cache_file($url) {
        return 
W3TC_CACHE_TMP_DIR '/pagespeed_' md5($url);
    }

    var 
$_format_string_args = array();

    
/**
     * Formats string
     *
     * @param string $format
     * @param array $args
     * @return mixed
     */
    
function _format_string($format$args) {
        
$result $format;
        if ( !empty( 
$args ) ) {
            
$this->_format_string_args $args;

            
$result preg_replace_callback'~\$([0-9]+)~', array(
                                                                  &
$this,
                                                                  
'_format_string_callback'
                                                             
), $format );
        }

        return 
$result;
    }

    
/**
     * Format string callback
     *
     * @param array $matches
     * @return string
     */
    
function _format_string_callback($matches) {
        
$index = (int) $matches[1] - 1;

        if (isset(
$this->_format_string_args[$index]->value)) {
            switch (
$this->_format_string_args[$index]->type) {
                case 
'URL':
                    return 
sprintf('<a href="%s">%s</a>'$this->_format_string_args[$index]->value$this->_format_string_args[$index]->value);

                default:
                    return 
$this->_format_string_args[$index]->value;
            }
        }

        return 
$matches[0];
    }

    
/**
     * Sort results
     *
     * @param array $results
     * @return void
     */
    
function _sort(&$results) {
        if (isset(
$results['rules'])) {
            
usort($results['rules'], array(
                &
$this,
                
'_sort_cmp'
            
));
        }
    }

    
/**
     * Compare function
     *
     * @param array $rule_result1
     * @param array $rule_result2
     * @return int
     */
    
function _sort_cmp(&$rule_result1, &$rule_result2) {
        if (
$rule_result1['impact'] == $rule_result2['impact']) {
            return 
0;
        }

        return (
$rule_result1['impact'] > $rule_result2['impact']) ? -1;
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.1092 ]--