!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\Text\Wiki\   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:     Parse.php (6.44 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
// vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4:
/**
 * Baseline rule class for extension into a "real" parser component.
 *
 * PHP versions 4 and 5
 *
 * @category   Text
 * @package    Text_Wiki
 * @author     Paul M. Jones <pmjones@php.net>
 * @license    http://www.gnu.org/copyleft/lesser.html  LGPL License 2.1
 * @version    CVS: $Id: Parse.php 191781 2005-07-29 08:57:29Z toggg $
 * @link       http://pear.php.net/package/Text_Wiki
 */

/**
 * Baseline rule class for extension into a "real" parser component.
 *
 * Text_Wiki_Rule classes do not stand on their own; they are called by a
 * Text_Wiki object, typcially in the transform() method. Each rule class
 * performs three main activities: parse, process, and render.
 *
 * The parse() method takes a regex and applies it to the whole block of
 * source text at one time. Each match is sent as $matches to the
 * process() method.
 *
 * The process() method acts on the matched text from the source, and
 * then processes the source text is some way.  This may mean the
 * creation of a delimited token using addToken().  In every case, the
 * process() method returns the text that should replace the matched text
 * from parse().
 *
 * @category   Text
 * @package    Text_Wiki
 * @author     Paul M. Jones <pmjones@php.net>
 * @license    http://www.gnu.org/copyleft/lesser.html  LGPL License 2.1
 * @version    Release: @package_version@
 * @link       http://pear.php.net/package/Text_Wiki
 */
class Text_Wiki_Parse {


    
/**
    *
    * Configuration options for this parser rule.
    *
    * @access public
    *
    * @var string
    *
    */

    
var $conf = array();


    
/**
    *
    * Regular expression to find matching text for this rule.
    *
    * @access public
    *
    * @var string
    *
    * @see parse()
    *
    */

    
var $regex null;


    
/**
    *
    * The name of this rule for new token array elements.
    *
    * @access public
    *
    * @var string
    *
    */

    
var $rule null;


    
/**
    *
    * A reference to the calling Text_Wiki object.
    *
    * This is needed so that each rule has access to the same source
    * text, token set, URLs, interwiki maps, page names, etc.
    *
    * @access public
    *
    * @var object
    */

    
var $wiki null;


    
/**
    *
    * Constructor for this parser rule.
    *
    * @access public
    *
    * @param object &$obj The calling "parent" Text_Wiki object.
    *
    */

    
function Text_Wiki_Parse(&$obj)
    {
        
// set the reference to the calling Text_Wiki object;
        // this allows us access to the shared source text, token
        // array, etc.
        
$this->wiki =& $obj;

        
// set the name of this rule; generally used when adding
        // to the tokens array. strip off the Text_Wiki_Parse_ portion.
        // text_wiki_parse_
        // 0123456789012345
        
$tmp substr(get_class($this), 16);
        
$this->rule ucwords(strtolower($tmp));

        
// override config options for the rule if specified
        
if (isset($this->wiki->parseConf[$this->rule]) &&
            
is_array($this->wiki->parseConf[$this->rule])) {

            
$this->conf array_merge(
                
$this->conf,
                
$this->wiki->parseConf[$this->rule]
            );

        }
    }


    
/**
    *
    * Abstrct method to parse source text for matches.
    *
    * Applies the rule's regular expression to the source text, passes
    * every match to the process() method, and replaces the matched text
    * with the results of the processing.
    *
    * @access public
    *
    * @see Text_Wiki_Parse::process()
    *
    */

    
function parse()
    {
        
$this->wiki->source preg_replace_callback(
            
$this->regex,
            array(&
$this'process'),
            
$this->wiki->source
        
);
    }


    
/**
    *
    * Abstract method to generate replacements for matched text.
    *
    * @access public
    *
    * @param array $matches An array of matches from the parse() method
    * as generated by preg_replace_callback.  $matches[0] is the full
    * matched string, $matches[1] is the first matched pattern,
    * $matches[2] is the second matched pattern, and so on.
    *
    * @return string The processed text replacement; defaults to the
    * full matched string (i.e., no changes to the text).
    *
    * @see Text_Wiki_Parse::parse()
    *
    */

    
function process(&$matches)
    {
        return 
$matches[0];
    }


    
/**
    *
    * Simple method to safely get configuration key values.
    *
    * @access public
    *
    * @param string $key The configuration key.
    *
    * @param mixed $default If the key does not exist, return this value
    * instead.
    *
    * @return mixed The configuration key value (if it exists) or the
    * default value (if not).
    *
    */

    
function getConf($key$default null)
    {
        if (isset(
$this->conf[$key])) {
            return 
$this->conf[$key];
        } else {
            return 
$default;
        }
    }


    
/**
    *
    * Extract 'attribute="value"' portions of wiki markup.
    *
    * This kind of markup is typically used only in macros, but is useful
    * anywhere.
    *
    * The syntax is pretty strict; there can be no spaces between the
    * option name, the equals, and the first double-quote; the value
    * must be surrounded by double-quotes.  You can escape characters in
    * the value with a backslash, and the backslash will be stripped for
    * you.
    *
    * @access public
    *
    * @param string $text The "attributes" portion of markup.
    *
    * @return array An associative array of key-value pairs where the
    * key is the option name and the value is the option value.
    *
    */

    
function getAttrs($text)
    {
        
// find the =" sections;
        
$tmp explode('="'trim($text));

        
// basic setup
        
$k count($tmp) - 1;
        
$attrs = array();
        
$key null;

        
// loop through the sections
        
foreach ($tmp as $i => $val) {

            
// first element is always the first key
            
if ($i == 0) {
                
$key trim($val);
                continue;
            }

            
// find the last double-quote in the value.
            // the part to the left is the value for the last key,
            // the part to the right is the next key name
            
$pos strrpos($val'"');
            
$attrs[$key] = stripslashes(substr($val0$pos));
            
$key trim(substr($val$pos+1));

        }

        return 
$attrs;

    }
}
?>

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