!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\Parse\Default\   drwxrwxrwx
Free 4.09 GB of 39.52 GB (10.36%)
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:     Table.php (6.64 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

/**

* Parses for table markup.

* @category Text

* @package Text_Wiki

* @author Paul M. Jones <pmjones@php.net>

* @license LGPL

* @version $Id: Table.php 180591 2005-02-23 17:38:29Z pmjones $

*/

/**

* Parses for table markup.

* This class implements a Text_Wiki_Parse to find source text marked as a
* set of table rows, where a line start and ends with double-pipes (||)
* and uses double-pipes to separate table cells.  The rows must be on
* sequential lines (no blank lines between them) -- a blank line
* indicates the beginning of a new table.
*
* @category Text

* @package Text_Wiki

* @author Paul M. Jones <pmjones@php.net>

*/

class Text_Wiki_Parse_Table extends Text_Wiki_Parse {
    
    
    
/**
    * 
    * The regular expression used to parse the source text and find
    * matches conforming to this rule.  Used by the parse() method.
    * 
    * @access public
    * 
    * @var string
    * 
    * @see parse()
    * 
    */
    
    
var $regex '/\n((\|\|).*)(\n)(?!(\|\|))/Us';
    
    
    
/**
    * 
    * Generates a replacement for the matched text.
    * 
    * Token options are:
    * 
    * 'type' =>
    *     'table_start' : the start of a bullet list
    *     'table_end'   : the end of a bullet list
    *     'row_start' : the start of a number list
    *     'row_end'   : the end of a number list
    *     'cell_start'   : the start of item text (bullet or number)
    *     'cell_end'     : the end of item text (bullet or number)
    * 
    * 'cols' => the number of columns in the table (for 'table_start')
    * 
    * 'rows' => the number of rows in the table (for 'table_start')
    * 
    * 'span' => column span (for 'cell_start')
    * 
    * 'attr' => column attribute flag (for 'cell_start')
    * 
    * @access public
    *
    * @param array &$matches The array of matches from parse().
    *
    * @return A series of text and delimited tokens marking the different
    * table elements and cell text.
    *
    */
    
    
function process(&$matches)
    {
        
// our eventual return value
        
$return '';
        
        
// the number of columns in the table
        
$num_cols 0;
        
        
// the number of rows in the table
        
$num_rows 0;
        
        
// rows are separated by newlines in the matched text
        
$rows explode("\n"$matches[1]);
        
        
// loop through each row
        
foreach ($rows as $row) {
            
            
// increase the row count
            
$num_rows ++;
            
            
// start a new row
            
$return .= $this->wiki->addToken(
                
$this->rule,
                array(
'type' => 'row_start')
            );
            
            
// cells are separated by double-pipes
            
$cell explode("||"$row);
            
            
// get the number of cells (columns) in this row
            
$last count($cell) - 1;
            
            
// is this more than the current column count?
            // (we decrease by 1 because we never use cell zero)
            
if ($last $num_cols) {
                
// increase the column count
                
$num_cols $last 1;
            }
            
            
// by default, cells span only one column (their own)
            
$span 1;
            
            
// ignore cell zero, and ignore the "last" cell; cell zero
            // is before the first double-pipe, and the "last" cell is
            // after the last double-pipe. both are always empty.
            
for ($i 1$i $last$i ++) {
                
                
// if there is no content at all, then it's an instance
                // of two sets of || next to each other, indicating a
                // span.
                
if ($cell[$i] == '') {
                    
                    
// add to the span and loop to the next cell
                    
$span += 1;
                    continue;
                    
                } else {
                    
                    
// this cell has content.
                    
                    // find any special "attr"ibute cell markers
                    
if (substr($cell[$i], 02) == '> ') {
                        
// right-align
                        
$attr 'right';
                        
$cell[$i] = substr($cell[$i], 2);
                    } elseif (
substr($cell[$i], 02) == '= ') {
                        
// center-align
                        
$attr 'center';
                        
$cell[$i] = substr($cell[$i], 2);
                    } elseif (
substr($cell[$i], 02) == '< ') {
                        
// left-align
                        
$attr 'left';
                        
$cell[$i] = substr($cell[$i], 2);
                    } elseif (
substr($cell[$i], 02) == '~ ') {
                        
$attr 'header';
                        
$cell[$i] = substr($cell[$i], 2);
                    } else {
                        
$attr null;
                    }
                    
                    
// start a new cell...
                    
$return .= $this->wiki->addToken(
                        
$this->rule
                        array (
                            
'type' => 'cell_start',
                            
'attr' => $attr,
                            
'span' => $span
                        
)
                    );
                    
                    
// ...add the content...
                    
$return .= trim($cell[$i]);
                    
                    
// ...and end the cell.
                    
$return .= $this->wiki->addToken(
                        
$this->rule
                        array (
                            
'type' => 'cell_end',
                            
'attr' => $attr,
                            
'span' => $span
                        
)
                    );
                    
                    
// reset the span.
                    
$span 1;
                }
                    
            }
            
            
// end the row
            
$return .= $this->wiki->addToken(
                
$this->rule,
                array(
'type' => 'row_end')
            );
            
        }
        
        
// wrap the return value in start and end tokens 
        
$return =
            
$this->wiki->addToken(
                
$this->rule,
                array(
                    
'type' => 'table_start',
                    
'rows' => $num_rows,
                    
'cols' => $num_cols
                
)
            )
            . 
$return .
            
$this->wiki->addToken(
                
$this->rule,
                array(
                    
'type' => 'table_end'
                
)
            );
        
        
// we're done!
        
return "\n$return\n\n";
    }
}
?>

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