!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\   drwxrwxrwx
Free 4.11 GB of 39.52 GB (10.4%)
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:     Tree.php (9.79 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
//
// +----------------------------------------------------------------------+
// | PHP Version 4                                                        |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2002 The PHP Group                                |
// +----------------------------------------------------------------------+
// | This source file is subject to version 2.02 of the PHP license,      |
// | that is bundled with this package in the file LICENSE, and is        |
// | available at through the world-wide-web at                           |
// | http://www.php.net/license/2_02.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: Bernd Römer <berndr@bonn.edu>                               |
// |          Sebastian Bergmann <sb@sebastian-bergmann.de>               |
// |          Tomas V.V.Cox <cox@idecnet.com> (tree mapping from xml file)|
// +----------------------------------------------------------------------+
//
// $Id: Tree.php,v 1.19 2002/05/17 12:15:23 cox Exp $
//

require_once 'XML/Parser.php';
require_once 
'XML/Tree/Node.php';

/**
* PEAR::XML_Tree
*
* Purpose
*
*    Allows for the building of XML data structures
*    using a tree representation, without the need
*    for an extension like DOMXML.
*
* Example
*
*    $tree  = new XML_Tree;
*    $root =& $tree->addRoot('root');
*    $foo  =& $root->addChild('foo');
*
*    header('Content-Type: text/xml');
*    $tree->dump();
*
* @author  Bernd Römer <berndr@bonn.edu>
* @package XML
* @version $Version$ - 1.0
*/
class XML_Tree extends XML_Parser
{
    
/**
    * File Handle
    *
    * @var  ressource
    */
    
var $file NULL;

    
/**
    * Filename
    *
    * @var  string
    */
    
var $filename '';

    
/**
    * Namespace
    *
    * @var  array
    */
    
var $namespace = array();

    
/**
    * Root
    *
    * @var  object XML_Tree_Node
    */
    
var $root NULL;

    
/**
    * XML Version
    *
    * @var  string
    */
    
var $version '1.0';

    
/**
    * Constructor
    *
    * @param  string  Filename
    * @param  string  XML Version
    */
    
function XML_Tree($filename ''$version '1.0') {
        
$this->filename $filename;
        
$this->version  $version;
    }

    
/**
    * Add root node.
    *
    * @param  string  $name     name of root element
    * @return object XML_Tree_Node   reference to root node
    *
    * @access public
    */
    
function &addRoot($name$content ''$attributes = array()) {
        
$this->root = new XML_Tree_Node($name$content$attributes);
        return 
$this->root;
    }

    
/**
    * @deprecated
    */
    
function &add_root($name$content ''$attributes = array()) {
        return 
$this->addRoot($name$content$attributes);
    }

    
/**
    * inserts a child/tree (child) into tree ($path,$pos) and
    * maintains namespace integrity
    *
    * @param array      $path           path to parent of child to remove
    * @param integer    $pos            position of child to be inserted in its parents children-list
    * @param mixed      $child          child-node (by XML_Tree,XML_Node or Name)
    * @param string     $content        content (text) for new node
    * @param array      $attributes     attribute-hash for new node
    *
    * @return object XML_Tree_Node inserted child (node)
    * @access public
    */
    
function &insertChild($path,$pos,$child$content ''$attributes = array()) {
        
// update namespace to maintain namespace integrity
        
$count=count($path);
        foreach(
$this->namespace as $key => $val) {
            if ((
array_slice($val,0,$count)==$path) && ($val[$count]>=$pos))
                
$this->namespace[$key][$count]++;
        }

        
$parent=&$this->get_node_by_path($path);
        return(
$parent->insert_child($pos,$child,$content,$attributes));
    }

    
/**
    * @deprecated
    */
    
function &insert_child($path,$pos,$child$content ''$attributes = array()) {
        return 
$this->insertChild($path$child$content$attributes);
    }

    
/*
    * removes a child ($path,$pos) from tree ($path,$pos) and
    * maintains namespace integrity
    *
    * @param array      $path   path to parent of child to remove
    * @param integer    $pos    position of child in parents children-list
    *
    * @return object XML_Tree_Node parent whichs child was removed
    * @access public
    */
    
function &removeChild($path,$pos) {
        
// update namespace to maintain namespace integrity
        
$count=count($path);
        foreach(
$this->namespace as $key => $val) {
            if (
array_slice($val,0,$count)==$path) {
                if (
$val[$count]==$pos) { unset($this->namespace[$key]); break; }
                if (
$val[$count]>$pos)
                    
$this->namespace[$key][$count]--;
            }
        }

        
$parent=&$this->get_node_by_path($path);
        return(
$parent->remove_child($pos));
    }

    
/**
    * @deprecated
    */
    
function &remove_child($path$pos) {
        return 
$this->removeChild($path$pos);
    }

    
/*
    * Maps a xml file to a objects tree
    *
    * @return mixed The objects tree (XML_tree or an Pear error)
    * @access public
    */
    
function &getTreeFromFile ()
    {
        
$this->folding false;
        
$this->XML_Parser(null'event');
        
$err $this->setInputFile($this->filename);
        if (
PEAR::isError($err)) {
            return 
$err;
        }
        
$this->cdata null;
        
$err $this->parse();
        if (
PEAR::isError($err)) {
            return 
$err;
        }
        return 
$this->root;
    }

    function 
getTreeFromString($str)
    {
        
$this->folding false;
        
$this->XML_Parser(null'event');
        
$this->cdata null;
        
$err $this->parseString($str);
        if (
PEAR::isError($err)) {
            return 
$err;
        }
        return 
$this->root;
    }

    
/**
    * Handler for the xml-data
    *
    * @param mixed  $xp         ignored
    * @param string $elem       name of the element
    * @param array  $attribs    attributes for the generated node
    *
    * @access private
    */
    
function startHandler($xp$elem, &$attribs)
    {
        
// root elem
        
if (!isset($this->i)) {
            
$this->obj1 =& $this->add_root($elemnull$attribs);
            
$this->2;
        } else {
            
// mixed contents
            
if (!empty($this->cdata)) {
                
$parent_id 'obj' . ($this->1);
                
$parent    =& $this->$parent_id;
                
$parent->children[] = &new XML_Tree_Node(null$this->cdata);
            }
            
$obj_id 'obj' $this->i++;
            
$this->$obj_id = &new XML_Tree_Node($elemnull$attribs);
        }
        
$this->cdata null;
        return 
null;
    }

    
/**
    * Handler for the xml-data
    *
    * @param mixed  $xp         ignored
    * @param string $elem       name of the element
    *
    * @access private
    */
    
function endHandler($xp$elem)
    {
        
$this->i--;
        if (
$this->1) {
            
$obj_id 'obj' $this->i;
            
// recover the node created in StartHandler
            
$node   =& $this->$obj_id;
            
// mixed contents
            
if (count($node->children) > 0) {
                if (
trim($this->cdata)) {
                    
$node->children[] = &new XML_Tree_Node(null$this->cdata);
                }
            } else {
                
$node->set_content($this->cdata);
            }
            
$parent_id 'obj' . ($this->1);
            
$parent    =& $this->$parent_id;
            
// attach the node to its parent node children array
            
$parent->children[] = $node;
        }
        
$this->cdata null;
        return 
null;
    }

    
/*
    * The xml character data handler
    *
    * @param mixed  $xp         ignored
    * @param string $data       PCDATA between tags
    *
    * @access private
    */
    
function cdataHandler($xp$data)
    {
        if (
trim($data)) {
            
$this->cdata .= $data;
        }
    }

    
/**
    * Get a copy of this tree.
    *
    * @return object XML_Tree
    * @access public
    */
    
function clone() {
        
$clone=new XML_Tree($this->filename,$this->version);
        
$clone->root=$this->root->clone();

        
// clone all other vars
        
$temp=get_object_vars($this);
        foreach(
$temp as $varname => $value)
            if (!
in_array($varname,array('filename','version','root')))
                
$clone->$varname=$value;

        return(
$clone);
    }

    
/**
    * Print text representation of XML tree.
    *
    * @access public
    */
    
function dump() {
        echo 
$this->get();
    }

    
/**
    * Get text representation of XML tree.
    *
    * @return  string  XML
    * @access public
    */
    
function &get() {
        
$out '<?xml version="' $this->version "\"?>\n";
        
$out .= $this->root->get();

        return 
$out;
    }

    
/**
    * Get current namespace.
    *
    * @param  string  $name namespace
    * @return string
    *
    * @access public
    */
    
function &getName($name) {
        return 
$this->root->get_element($this->namespace[$name]);
    }

    
/**
    * @deprecated
    */
    
function &get_name($name) {
        return 
$this->getName($name);
    }

    
/**
    * Register a namespace.
    *
    * @param  string  $name namespace
    * @param  string  $path path
    *
    * @access public
    */
    
function registerName($name$path) {
        
$this->namespace[$name] = $path;
    }

    
/**
    * @deprecated
    */
    
function register_name($name$path) {
        return 
$this->registerName($name$path);
    }
}
?>

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