!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:\dmz\php\pear\   drwxrwxrwx
Free 4.08 GB of 39.52 GB (10.32%)
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:     Var_Dump.php (20.38 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/* vim: set expandtab tabstop=4 shiftwidth=4: */
// +----------------------------------------------------------------------+
// | PHP version 4                                                        |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2006 The PHP Group                                |
// +----------------------------------------------------------------------+
// | This source file is subject to version 3.0 of the PHP license,       |
// | that is bundled with this package in the file LICENSE, and is        |
// | available through the world-wide-web at the following url:           |
// | http://www.php.net/license/3_0.txt.                                  |
// | If you did not receive a copy of the PHP license and are unable to   |
// | obtain it through the world-wide-web, please send a note to          |
// | license@php.net so we can mail you a copy immediately.               |
// +----------------------------------------------------------------------+
// | Authors: Frederic Poeydomenge <fpoeydomenge@free.fr>                 |
// +----------------------------------------------------------------------+

/**
 * Wrapper for the var_dump function.
 *
 * " The var_dump function displays structured information about expressions
 * that includes its type and value. Arrays are explored recursively
 * with values indented to show structure. "
 *
 * The Var_Dump class captures the output of the var_dump function,
 * by using output control functions, and then uses external renderer
 * classes for displaying the result in various graphical ways :
 * simple text, HTML/XHTML text, HTML/XHTML table, XML, ...
 *
 * @category  PHP
 * @package   Var_Dump
 * @author    Frederic Poeydomenge <fpoeydomenge@free.fr>
 * @copyright 1997-2006 The PHP Group
 * @license   http://www.php.net/license/3_0.txt PHP License 3.0
 * @version   CVS: $Id: Var_Dump.php 237750 2007-06-15 08:06:25Z fredericpoeydome $
 * @link      http://pear.php.net/package/Var_Dump
 */

/**
 * Include Renderer class
 */

require_once 'Var_Dump/Renderer.php';

/**
 * Constants
 */

define ('VAR_DUMP_START_GROUP',          1);
define ('VAR_DUMP_FINISH_GROUP',         2);
define ('VAR_DUMP_START_ELEMENT_NUM',    3);
define ('VAR_DUMP_START_ELEMENT_STR',    4);
define ('VAR_DUMP_FINISH_ELEMENT',       5);
define ('VAR_DUMP_FINISH_STRING',        6);

define ('VAR_DUMP_PREG_MATCH',           0);
define ('VAR_DUMP_PREG_SPACES',          1);
define ('VAR_DUMP_PREG_KEY_QUOTE',       2);
define ('VAR_DUMP_PREG_KEY',             3);
define ('VAR_DUMP_PREG_STRING_TYPE',     4);
define ('VAR_DUMP_PREG_STRING_LENGTH',   5);
define ('VAR_DUMP_PREG_STRING_VALUE',    6);
define ('VAR_DUMP_PREG_VALUE',           7);
define ('VAR_DUMP_PREG_VALUE_REFERENCE'8);
define ('VAR_DUMP_PREG_VALUE_TYPE',      9);
define ('VAR_DUMP_PREG_VALUE_COMPL',    10);
define ('VAR_DUMP_PREG_VALUE_RESOURCE'11);
define ('VAR_DUMP_PREG_ARRAY_END',      12);
define ('VAR_DUMP_PREG_ARRAY_START',    13);
define ('VAR_DUMP_PREG_ARRAY_TYPE',     14);
define ('VAR_DUMP_PREG_ARRAY_COUNT',    15);
define ('VAR_DUMP_PREG_STRING_COMPL',   16);

/**
 * Main class.
 *
 * @category  PHP
 * @package   Var_Dump
 * @author    Frederic Poeydomenge <fpoeydomenge@free.fr>
 * @copyright 1997-2006 The PHP Group
 * @license   http://www.php.net/license/3_0.txt PHP License 3.0
 * @version   CVS: $Id: Var_Dump.php 237750 2007-06-15 08:06:25Z fredericpoeydome $
 * @link      http://pear.php.net/package/Var_Dump
 */

class Var_Dump
{

    
/**
     * Default configuration options.
     *
     * @var array
     * @access public
     */
    
var $defaultOptions = array(
        
'display_mode' => 'XHTML_Text'// Display mode.
        
'ignore_list'  => NULL          // List of ignored class names.
    
);

    
/**
     * Run-time configuration options.
     *
     * @var array
     * @access public
     */
    
var $options = array();

    
/**
     * Rendering object.
     *
     * @var object
     * @access public
     */
    
var $renderer NULL;

    
/**
     * Rendering configuration options.
     *
     * See Var_Dump/Renderer/*.php for the complete list of options
     *
     * @var array
     * @access public
     */
    
var $rendererOptions = array();

    
/**
     * Class constructor.
     *
     * The factory approach must be used in relationship with the
     * toString() method.
     * See Var_Dump/Renderer/*.php for the complete list of options
     *
     * @see Var_Dump::toString()
     * @param mixed $options String (display mode) or array (Global parameters).
     * @param array $rendererOptions Parameters for the rendering.
     * @access public
     */
    
function Var_Dump($options = array(), $rendererOptions = array())
    {

        if (! 
is_null($options)) {
            if (
is_string($options)) {
                
$options = array(
                    
'display_mode' => $options
                
);
            }
            
$this->options array_merge (
                
$this->defaultOptions,
                
$options
            
);
        }

        if (! 
is_null($rendererOptions) and is_array($rendererOptions)) {
            
$this->rendererOptions $rendererOptions;
            
$this->renderer = & Var_Dump_Renderer::factory(
                
$this->options['display_mode'],
                
$this->rendererOptions
            
);
        }

    }

    
/**
     * Attempt to return a concrete Var_Dump instance.
     *
     * The factory approach must be used in relationship with the
     * toString() method.
     * See Var_Dump/Renderer/*.php for the complete list of options
     *
     * @see Var_Dump::toString()
     * @param mixed $options String (display mode) or array (Global parameters).
     * @param array $rendererOptions Parameters for the rendering.
     * @access public
     */
    
function & factory($options = array(), $rendererOptions = array())
    {
        
$obj = new Var_Dump($options$rendererOptions);
        return 
$obj;
    }

    
/**
     * Uses a renderer object to return the string representation of a variable.
     *
     * @param mixed $expression The variable to parse.
     * @return string The string representation of the variable.
     * @access public
     */
    
function toString($expression)
    {

        if (
is_null($this->renderer)) {
            return 
'';
        }

        
$family = array(); // element family
        
$depth  = array(); // element depth
        
$type   = array(); // element type
        
$value  = array(); // element value

        // When xdebug is loaded, disable the custom fancy var_dump() function,
        // that is not compatible with the regexp parsing below, by forcing
        // the "html_errors" configuration option to "off"

        
if (extension_loaded('xdebug')) {
            
ini_set('html_errors''0');
        }

        
// Captures the output of the var_dump function,
        // by using output control functions.

        
ob_start();
        
var_dump($expression);
        
$variable ob_get_contents();
        
ob_end_clean();

        
// When xdebug is loaded, restore the value of the
        // "html_errors" configuration option

        
if (extension_loaded('xdebug')) {
            
ini_restore('html_errors');
        }

        
// Regexp that parses the output of the var_dump function.
        // The numbers between square brackets [] are the reference
        // of the captured subpattern, and correspond to the entries
        // in the resulting $matches array.

        
preg_match_all(
            
'!^
              (\s*)                                 # 2 spaces for each depth level
              (?:                                   #
                (?:\[("?)(.*?)\\2\]=>)              # Key [2-3]
                  |                                 #   or
                (?:(&?string\((\d+)\))\s+"(.*))     # String [4-6]
                  |                                 #   or
                (                                   # Value [7-11]
                  (&?)                              #   - reference [8]
                  (bool|int|float|resource|         #   - type [9]
                  NULL|\*RECURSION\*|UNKNOWN:0)     #
                  (?:\((.*?)\))?                    #   - complement [10]
                  (?:\sof\stype\s\((.*?)\))?        #   - resource [11]
                )                                   #
                  |                                 #   or
                (})                                 # End of array/object [12]
                  |                                 #   or
                (?:(&?(array|object)\((.+)\).*)\ {) # Start of array/object [13-15]
                  |                                 #   or
                (.*)                                # String (additional lines) [16]
              )                                     #
            $!Smx'
,
            
$variable,
            
$matches,
            
PREG_SET_ORDER
        
);

        
// Used to keep the maxLen of the keys for each nested variable.

        
$stackLen = array();
        
$keyLen = array();
        
$maxLen 0;

        
// Used when matching a string, to count the remaining
        // number of chars before the end of the string.

        
$countdown 0;

        
// Loop through the matches of the previously defined regexp.

        
reset($matches);
        while (list(
$key$match) = each($matches)) {

            
$count count($match) - 1;

            
// Find which alternative has been matched in the regexp,
            // by looking at the number of elements in the $match array.

            
switch ($count) {

                
// Key
                //=====
                // - Compute the maxLen of the keys at the actual depth

                
case VAR_DUMP_PREG_KEY:
                    
$len strlen($match[VAR_DUMP_PREG_KEY]);
                    if (
$len $maxLen) {
                        
$maxLen $len;
                    }
                    if (empty(
$match[VAR_DUMP_PREG_KEY_QUOTE])) {
                        
$family[] = VAR_DUMP_START_ELEMENT_NUM;
                    } else {
                        
$family[] = VAR_DUMP_START_ELEMENT_STR;
                    }
                    
$depth[] = strlen($match[VAR_DUMP_PREG_SPACES]) >> 1;
                    
$type[]  = NULL;
                    
$value[] = $match[VAR_DUMP_PREG_KEY];
                    break;

                
// String
                //========
                // - Set the countdown (remaining number of chars before eol) =
                //   len of the string - matched len + 1 (final ")

                
case VAR_DUMP_PREG_STRING_TYPE:
                case 
VAR_DUMP_PREG_STRING_LENGTH:
                case 
VAR_DUMP_PREG_STRING_VALUE:
                    
$countdown =
                        
$match[VAR_DUMP_PREG_STRING_LENGTH]
                        - 
strlen($match[VAR_DUMP_PREG_STRING_VALUE])
                        + 
1;
                    
$family[] = VAR_DUMP_FINISH_STRING;
                    
$depth[] = strlen($match[VAR_DUMP_PREG_SPACES]) >> 1;
                    
$type[] = $match[VAR_DUMP_PREG_STRING_TYPE];
                    if (
$countdown == 0) {
                        
$value[] = substr($match[VAR_DUMP_PREG_STRING_VALUE], 0, -1);
                    } else {
                        
$value[] = $match[VAR_DUMP_PREG_STRING_VALUE];
                    }
                    break;

                
// String (additional lines)
                //===========================
                // - Compute new countdown value
                // - Pop value off the end of the array, and concatenate new value
                // - Last additional line : remove trailing "
                // - Push new value onto the end of array

                
case VAR_DUMP_PREG_STRING_COMPL:
                    if (
$countdown 0) {
                        
$countdown -= strlen($match[VAR_DUMP_PREG_MATCH]) + 1;
                        
$new_value =
                            
array_pop($value) . "\n" .
                            
$match[VAR_DUMP_PREG_STRING_COMPL];
                        if (
$countdown == 0) {
                            
$new_value substr($new_value0, -1);
                        }
                        
array_push($value$new_value);
                    }
                    break;

                
// Value
                //=======

                
case VAR_DUMP_PREG_VALUE:
                case 
VAR_DUMP_PREG_VALUE_REFERENCE:
                case 
VAR_DUMP_PREG_VALUE_TYPE:
                case 
VAR_DUMP_PREG_VALUE_COMPL:
                case 
VAR_DUMP_PREG_VALUE_RESOURCE:
                    
$family[] = VAR_DUMP_FINISH_ELEMENT;
                    
$depth[] = strlen($match[VAR_DUMP_PREG_SPACES]) >> 1;
                    switch (
$match[VAR_DUMP_PREG_VALUE_TYPE]) {
                        case 
'bool':
                        case 
'int':
                        case 
'float':
                            
$type[] =
                                
$match[VAR_DUMP_PREG_VALUE_REFERENCE] .
                                
$match[VAR_DUMP_PREG_VALUE_TYPE];
                            
$value[] = $match[VAR_DUMP_PREG_VALUE_COMPL];
                            break;
                        case 
'resource':
                            
$type[] =
                                
$match[VAR_DUMP_PREG_VALUE_REFERENCE] .
                                
$match[VAR_DUMP_PREG_VALUE_TYPE] .
                                
'(' $match[VAR_DUMP_PREG_VALUE_RESOURCE] . ')';
                            
$value[] = $match[VAR_DUMP_PREG_VALUE_COMPL];
                            break;
                        default:
                            
$type[] =
                                
$match[VAR_DUMP_PREG_VALUE_REFERENCE] .
                                
$match[VAR_DUMP_PREG_VALUE_TYPE];
                            
$value[] = NULL;
                            break;
                    }
                    break;

                
// String (additional line containing a single "}")
                //==================================================
                // - see "case VAR_DUMP_PREG_STRING_COMPL" just above
                //
                // OR End of array/object
                //========================
                // - Pop the maxLen of the keys off the end of the stack
                // - If the last element on the stack is an array(0) or object(0),
                //   replace it by a standard element

                
case VAR_DUMP_PREG_ARRAY_END:

                    if (
$countdown 0) {
                        
// String
                        
$countdown -= strlen($match[VAR_DUMP_PREG_MATCH]) + 1;
                        
$new_value array_pop($value) . "\n" '}';
                        if (
$countdown == 0) {
                            
$new_value substr($new_value0, -1);
                        }
                        
array_push($value$new_value);
                    } else {
                        
// End of array/object
                        
$oldLen array_pop($stackLen);
                        
$keyLen[$oldLen[0]] = $maxLen;
                        
$maxLen $oldLen[1];
                        if (
                            (
$family[count($family) - 1] == VAR_DUMP_START_GROUP)
                                and
                            (
$type[count($type) - 1] === 0)
                        ) {
                            
$family[count($family) - 1] = VAR_DUMP_FINISH_ELEMENT;
                            
$type[count($type) - 1] = $value[count($value) - 1];
                            
$value[count($value) - 1] = NULL;
                        } else {
                            
$family[] = VAR_DUMP_FINISH_GROUP;
                            
$depth[] = strlen($match[VAR_DUMP_PREG_SPACES]) >> 1;
                            
$type[] = NULL;
                            
$value[] = $match[VAR_DUMP_PREG_ARRAY_END];
                        }
                    }
                    break;

                
// Start of array/object
                //=======================
                // - If object is in the "ignore_list", jump at the end of it
                // - Else process it normally :
                //   - Push the maxLen of the keys onto the end of the stack
                //   - Initialize new maxLen to 0

                
case VAR_DUMP_PREG_ARRAY_START:
                case 
VAR_DUMP_PREG_ARRAY_TYPE:
                case 
VAR_DUMP_PREG_ARRAY_COUNT:
                    
                    
$parse TRUE;

                    
// If object is in the "ignore_list", jump at the end of it.

                    
if ($match[VAR_DUMP_PREG_ARRAY_TYPE] == 'object') {
                        
$infos $match[VAR_DUMP_PREG_ARRAY_COUNT];
                        
$class_name substr($infos0strpos($infos')'));
                        if (
                            ! 
is_null($this->options['ignore_list'])
                                and
                            
in_array($class_name$this->options['ignore_list'])
                        ) {
                            
$family[] = VAR_DUMP_FINISH_STRING;
                            
$depth[] = strlen($match[VAR_DUMP_PREG_SPACES]) >> 1;
                            
$type[] = 'object(' $class_name ')';
                            
$value[] = 'Not parsed.';
                            while (
$parse) {
                                list(
$dummy$each) = each($matches);
                                if (
                                    
$match[VAR_DUMP_PREG_SPACES] == $each[VAR_DUMP_PREG_SPACES]
                                        and
                                    (
count($each) - 1) == VAR_DUMP_PREG_ARRAY_END
                                
) {
                                    
$parse FALSE;
                                }
                            };
                        }
                    }

                    
// If not, process it normally.

                    
if ($parse) {

                        
array_push($stackLen, array(count($family), $maxLen));
                        
$maxLen 0;
                        
$family[] = VAR_DUMP_START_GROUP;
                        
$depth[] = strlen($match[VAR_DUMP_PREG_SPACES]) >> 1;
                        
$type[] = (int) $match[VAR_DUMP_PREG_ARRAY_COUNT];
                        
$value[] = $match[VAR_DUMP_PREG_ARRAY_START];

                    }

                    break;

            }

        }

        
$this->renderer->initialize($family$depth$type$value$keyLen);

        return 
$this->renderer->toString();

    }

    
/**
     * Attempt to return a concrete singleton Var_Dump instance.
     *
     * The singleton approach must be used in relationship with the
     * displayInit() and display() methods.
     * See Var_Dump/Renderer/*.php for the complete list of options
     *
     * @see Var_Dump::display(), Var_Dump::displayInit()
     * @return object Var_Dump instance
     * @access public
     */
    
function & singleton()
    {
        static 
$instance;
        if (! isset(
$instance)) {
            
$instance = new Var_Dump(array(), array(), array());
        }
        return 
$instance;
    }

    
/**
     * Initialise the singleton object used by the display() method.
     *
     * @see Var_Dump::singleton(), Var_Dump::display()
     * @param mixed $options String (display mode) or array (Global parameters).
     * @param array $rendererOptions Parameters for the rendering.
     * @access public
     */
    
function displayInit($options = array(), $rendererOptions = array())
    {
        
$displayInit = & Var_Dump::singleton();
        
$displayInit->Var_Dump($options$rendererOptions);
    }

    
/**
     * Outputs or returns a string representation of a variable.
     *
     * @see Var_Dump::singleton(), Var_Dump::displayInit()
     * @param mixed $expression The variable to parse.
     * @param bool $return Whether the variable should be echoed or returned.
     * @param mixed $options String (display mode) or array (Global parameters).
     * @param array $rendererOptions Parameters for the rendering.
     * @return string If returned, the string representation of the variable.
     * @access public
     */
    
function display($expression$return FALSE$options NULL$rendererOptions NULL)
    {
        
$display = & Var_Dump::singleton();
        if (! 
is_null($options) or ! is_null($rendererOptions)) {
            if (
is_null($rendererOptions)) {
                
$rendererOptions = array();
            }
            
$display->Var_Dump($options$rendererOptions);
        }
        if (
$return === TRUE) {
            return 
$display->toString($expression);
        } else {
            echo 
$display->toString($expression);
        }
    }

}

?>

:: 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.0156 ]--