!C99Shell v. 2.0 [PHP 7 Update] [25.02.2019]!

Software: nginx/1.23.4. PHP/5.6.40-65+ubuntu20.04.1+deb.sury.org+1 

uname -a: Linux foro-restaurado-2 5.15.0-1040-oracle #46-Ubuntu SMP Fri Jul 14 21:47:21 UTC 2023
aarch64
 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/usr/share/php/PhpMyAdmin/SqlParser/Utils/   drwxr-xr-x
Free 83.37 GB of 96.73 GB (86.19%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     Tokens.php (3.97 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
 * Token utilities.
 */

declare(strict_types=1);

namespace 
PhpMyAdmin\SqlParser\Utils;

use 
PhpMyAdmin\SqlParser\Lexer;
use 
PhpMyAdmin\SqlParser\Token;
use 
PhpMyAdmin\SqlParser\TokensList;
use function 
count;
use function 
strcasecmp;

/**
 * Token utilities.
 */
class Tokens
{
    
/**
     * Checks if a pattern is a match for the specified token.
     *
     * @param Token $token   the token to be matched
     * @param array $pattern the pattern to be matches
     *
     * @return bool
     */
    
public static function match(Token $token, array $pattern)
    {
        
// Token.
        
if (isset($pattern['token'])
            && (
$pattern['token'] !== $token->token)
        ) {
            return 
false;
        }

        
// Value.
        
if (isset($pattern['value'])
            && (
$pattern['value'] !== $token->value)
        ) {
            return 
false;
        }

        if (isset(
$pattern['value_str'])
            && 
strcasecmp($pattern['value_str'], (string) $token->value)
        ) {
            return 
false;
        }

        
// Type.
        
if (isset($pattern['type'])
            && (
$pattern['type'] !== $token->type)
        ) {
            return 
false;
        }

        
// Flags.
        
return ! isset($pattern['flags'])
            || (! ((
$pattern['flags'] & $token->flags) === 0));
    }

    public static function 
replaceTokens($list, array $find, array $replace)
    {
        
/**
         * Whether the first parameter is a list.
         *
         * @var bool
         */
        
$isList $list instanceof TokensList;

        
// Parsing the tokens.
        
if (! $isList) {
            
$list Lexer::getTokens($list);
        }

        
/**
         * The list to be returned.
         *
         * @var array
         */
        
$newList = [];

        
/**
         * The length of the find pattern is calculated only once.
         *
         * @var int
         */
        
$findCount count($find);

        
/**
         * The starting index of the pattern.
         *
         * @var int
         */
        
$i 0;

        while (
$i $list->count) {
            
// A sequence may not start with a comment.
            
if ($list->tokens[$i]->type === Token::TYPE_COMMENT) {
                
$newList[] = $list->tokens[$i];
                ++
$i;
                continue;
            }

            
/**
             * The index used to parse `$list->tokens`.
             *
             * This index might be running faster than `$k` because some tokens
             * are skipped.
             *
             * @var int
             */
            
$j $i;

            
/**
             * The index used to parse `$find`.
             *
             * This index might be running slower than `$j` because some tokens
             * are skipped.
             *
             * @var int
             */
            
$k 0;

            
// Checking if the next tokens match the pattern described.
            
while (($j $list->count) && ($k $findCount)) {
                
// Comments are being skipped.
                
if ($list->tokens[$j]->type === Token::TYPE_COMMENT) {
                    ++
$j;
                }

                if (! static::
match($list->tokens[$j], $find[$k])) {
                    
// This token does not match the pattern.
                    
break;
                }

                
// Going to next token and segment of find pattern.
                
++$j;
                ++
$k;
            }

            
// Checking if the sequence was found.
            
if ($k === $findCount) {
                
// Inserting new tokens.
                
foreach ($replace as $token) {
                    
$newList[] = $token;
                }

                
// Skipping next `$findCount` tokens.
                
$i $j;
            } else {
                
// Adding the same token.
                
$newList[] = $list->tokens[$i];
                ++
$i;
            }
        }

        return 
$isList ?
            new 
TokensList($newList) : TokensList::build($newList);
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

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

--[ c99shell v. 2.0 [PHP 7 Update] [25.02.2019] maintained by HackingTool | HackingTool | Generation time: 0.0049 ]--