!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\XML\RPC2\Backend\Php\   drwxrwxrwx
Free 4.13 GB of 39.52 GB (10.44%)
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:     Value.php (12.24 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4 foldmethod=marker: */

// LICENSE AGREEMENT. If folded, press za here to unfold and read license {{{ 

/**
* +-----------------------------------------------------------------------------+
* | Copyright (c) 2004-2006 Sergio Goncalves Carvalho                                |
* +-----------------------------------------------------------------------------+
* | This file is part of XML_RPC2.                                              |
* |                                                                             |
* | XML_RPC2 is free software; you can redistribute it and/or modify            |
* | it under the terms of the GNU Lesser General Public License as published by |
* | the Free Software Foundation; either version 2.1 of the License, or         |
* | (at your option) any later version.                                         |
* |                                                                             |
* | XML_RPC2 is distributed in the hope that it will be useful,                 |
* | but WITHOUT ANY WARRANTY; without even the implied warranty of              |
* | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               |
* | GNU Lesser General Public License for more details.                         |
* |                                                                             |
* | You should have received a copy of the GNU Lesser General Public License    |
* | along with XML_RPC2; if not, write to the Free Software                     |
* | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA                    |
* | 02111-1307 USA                                                              |
* +-----------------------------------------------------------------------------+
* | Author: Sergio Carvalho <sergio.carvalho@portugalmail.com>                  |
* +-----------------------------------------------------------------------------+
*
* @category   XML
* @package    XML_RPC2
* @author     Sergio Carvalho <sergio.carvalho@portugalmail.com>  
* @copyright  2004-2005 Sergio Carvalho
* @license    http://www.gnu.org/copyleft/lesser.html  LGPL License 2.1
* @version    CVS: $Id: Value.php 308633 2011-02-24 18:54:23Z sergiosgc $
* @link       http://pear.php.net/package/XML_RPC2
*/

// }}}

// dependencies {{{
require_once 'XML/RPC2/Exception.php';
require_once 
'XML/RPC2/Value.php';
// }}}

/**
 * XML_RPC value abstract class. All XML_RPC value classes inherit from XML_RPC2_Value
 *
 * @category   XML
 * @package    XML_RPC2
 * @author     Sergio Carvalho <sergio.carvalho@portugalmail.com>  
 * @copyright  2004-2005 Sergio Carvalho
 * @license    http://www.gnu.org/copyleft/lesser.html  LGPL License 2.1
 * @link       http://pear.php.net/package/XML_RPC2 
 */
abstract class XML_RPC2_Backend_Php_Value extends XML_RPC2_Value
{
    
// {{{ properties
    
    /**
     * native value
     * 
     * @var mixed
     */
    
private $_nativeValue null;
    
    
// }}}
    // {{{ getNativeValue()
    
    /**
     * nativeValue property getter
     *
     * @return mixed The current nativeValue
     */
    
public function getNativeValue() 
    {
        return 
$this->_nativeValue;
    } 

    
// }}}
    // {{{ setNativeValue()
    
    /**
     * nativeValue setter
     *
     * @param mixed $value
     */
    
protected function setNativeValue($value)
    {
        
$this->_nativeValue $value;
    }
    
    
// }}}  
    // {{{ createFromNative()
    
    /**
     * Choose a XML_RPC2_Value subclass appropriate for the 
     * given value and create it.
     * 
     * This method tries to find the most adequate XML-RPC datatype to hold
     * a given PHP native type. Note that distinguishing some datatypes may be
     * difficult:
     *  - Timestamps are represented by PHP integers, so an XML_RPC2_Value_Datetime is never returned
     *  - Indexed arrays and associative arrays are the same native PHP type. In this case:
     *    a) The array's indexes start at 0 or 1 and increase monotonically with step 1, or
     *    b) they do not
     *    in the first case, an XML_RPC2_Value_Array is returned. In the second, a XML_RPC2_Value_Struct is returned.
     *  - PHP Objects are serialized and represented in an XML_RPC2_Value_Base64
     *  - Integers fitting in a 32bit integer are encoded as regular xml-rpc integers
     *  - Integers larger than 32bit are encoded using the i8 xml-rpc extension 
     *
     * Whenever native object automatic detection proves inaccurate, use XML_RPC2_Value::createFromNative providing 
     * a valid explicit type as second argument
     * 
     * the appropriate XML_RPC2_Value child class instead.
     *
     * @param mixed The native value
     * @param string The xml-rpc target encoding type, as per the xmlrpc spec (optional)
     * @throws XML_RPC2_InvalidTypeEncodeException When the native value has a type that can't be translated to XML_RPC
     * @return A new XML_RPC2_Value instance
     * @see XML_RPC_Client::__call
     * @see XML_RPC_Server
     */
    
public static function createFromNative($nativeValue$explicitType null
    {
        if (
is_null($explicitType)) {
            switch (
gettype($nativeValue)) {
                case 
'boolean':
                    
$explicitType 'boolean';
                    break;
                case 
'integer':
                    
$explicitType 'int';
                    break;
                case 
'double':
                    
$explicitType 'double';
                    break;
                case 
'string':
                    
$explicitType 'string';
                    break;
                case 
'array':
                    
$explicitType 'array';
                    
$keys array_keys($nativeValue);
                    if (
count($keys) > 0) {
                        if (
$keys[0] !== && ($keys[0] !== 1)) $explicitType 'struct';
                        
$i=0;
                        do {
                            
$previous $keys[$i];
                            
$i++;
                            if (
array_key_exists($i$keys) && ($keys[$i] !== $keys[$i 1] + 1)) $explicitType 'struct';
                        } while (
array_key_exists($i$keys) && $explicitType == 'array');
                    }
                    break;
                case 
'object':
                    if ((
strtolower(get_class($nativeValue)) == 'stdclass') && (isset($nativeValue->xmlrpc_type))) {
                        
// In this case, we have a "stdclass native value" (emulate xmlrpcext)
                        // the type 'base64' or 'datetime' is given by xmlrpc_type public property 
                        
$explicitType $nativeValue->xmlrpc_type;
                    } else {
                        
$nativeValue serialize($nativeValue);
                        
$explicitType 'base64';
                    }
                    break;
                case 
'resource':
                case 
'NULL':
                case 
'unknown type':
                    throw new 
XML_RPC2_InvalidTypeEncodeException(sprintf('Impossible to encode value \'%s\' from type \'%s\'. No analogous type in XML_RPC.'
                        (string) 
$nativeValue,
                        
gettype($nativeValue)));
                default:
                    throw new 
XML_RPC2_InvalidTypeEncodeException(sprintf('Unexpected PHP native type returned by gettype: \'%s\', for value \'%s\'',
                        
gettype($nativeValue),
                        (string) 
$nativeValue));
            }
        }        
        
$explicitType ucfirst(strtolower($explicitType));
        switch (
$explicitType) {
            case 
'I8':
                require_once 
'XML/RPC2/Backend/Php/Value/Scalar.php';
                return 
XML_RPC2_Backend_Php_Value_Scalar::createFromNative($nativeValue'Integer64');
                break;
            case 
'I4':
            case 
'Int':
            case 
'Boolean':
            case 
'Double':
            case 
'String':
            case 
'Nil':
                require_once 
'XML/RPC2/Backend/Php/Value/Scalar.php';
                return 
XML_RPC2_Backend_Php_Value_Scalar::createFromNative($nativeValue);
                break;
            case 
'Datetime.iso8601':
            case 
'Datetime':    
                require_once 
'XML/RPC2/Backend/Php/Value/Datetime.php';
                return new 
XML_RPC2_Backend_Php_Value_Datetime($nativeValue);
                break;
            case 
'Base64':
                require_once 
'XML/RPC2/Backend/Php/Value/Base64.php';
                return new 
XML_RPC2_Backend_Php_Value_Base64($nativeValue);
                break;
            case 
'Array':
                require_once 
'XML/RPC2/Backend/Php/Value/Array.php';
                return new 
XML_RPC2_Backend_Php_Value_Array($nativeValue);
                break;
            case 
'Struct':
                require_once 
'XML/RPC2/Backend/Php/Value/Struct.php';
                return new 
XML_RPC2_Backend_Php_Value_Struct($nativeValue);
                break;
            default:
                throw new 
XML_RPC2_InvalidTypeEncodeException(sprintf('Unexpected explicit encoding type \'%s\''$explicitType));
        }
    }
    
    
// }}}
    // {{{ createFromDecode()
    
    /**
     * Decode an encoded value and build the applicable XML_RPC2_Value subclass
     * 
     * @param SimpleXMLElement The encoded XML-RPC value
     * @return mixed the corresponding XML_RPC2_Value object
     */
    
public static function createFromDecode($simpleXML
    {
        
// TODO Remove reparsing of XML fragment, when SimpleXML proves more solid. Currently it segfaults when
        // xpath is used both in an element and in one of its children
        
$simpleXML simplexml_load_string($simpleXML->asXML());
        
        
$valueType $simpleXML->xpath('./*');
        if (
count($valueType) == 1) { // Usually we must check the node name
            
$nodename dom_import_simplexml($valueType[0])->nodeName;
            switch (
$nodename) {
                case 
'i8':
                    
$nativeType 'Integer64';
                    break;
                case 
'i4':
                case 
'int':
                    
$nativeType 'Integer';
                    break;
                case 
'boolean':
                    
$nativeType 'Boolean';
                    break;
                case 
'double':
                    
$nativeType 'Double';
                    break;
                case 
'string':
                    
$nativeType 'String';
                    break;
                case 
'dateTime.iso8601':
                    
$nativeType 'Datetime';
                    break;
                case 
'base64':
                    
$nativeType 'Base64';
                    break;
                case 
'array':
                    
$nativeType 'Array';
                    break;
                case 
'struct':
                    
$nativeType 'Struct';
                    break;
                case 
'nil':
                    
$nativeType 'Nil';
                    break;
                default:
                    throw new 
XML_RPC2_DecodeException(sprintf('Unable to decode XML-RPC value. Value type is not recognized \'%s\''$nodename));
            }
        } elseif (
count($valueType) == 0) { // Default type is string
            
$nodename null;
            
$nativeType 'String';
        } else {
            throw new 
XML_RPC2_DecodeException(sprintf('Unable to decode XML-RPC value. Value presented %s type nodes: %s.'count($valueType), $simpleXML->asXML()));
        }
        require_once(
sprintf('XML/RPC2/Backend/Php/Value/%s.php'$nativeType));
        
$nativeType 'XML_RPC2_Backend_Php_Value_' $nativeType;
        return 
self::createFromNative(@call_user_func(array($nativeType'decode'), $simpleXML), $nodename);
    }
    
    
// }}}
    // {{{ encode()
        
    /**
     * Encode the instance into XML, for transport
     * 
     * @return string The encoded XML-RPC value,
     */
     // Declaration commented because of: http://pear.php.net/bugs/bug.php?id=8499
//    public abstract function encode();
    
    // }}}
    // {{{ decode()
    
    /**
     * decode. Decode transport XML and set the instance value accordingly
     * 
     * @param mixed The encoded XML-RPC value,
     */
     // Declaration commented because of: http://pear.php.net/bugs/bug.php?id=8499
//    public static abstract function decode($xml);
    
    // }}}
}

?>

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