!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/public_html/phpmyadmin/libraries/classes/Config/Settings/   drwxr-xr-x
Free 28.69 GB of 117.98 GB (24.31%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     Transformations.php (13.35 KB)      -rwxr-x---
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

declare(strict_types=1);

namespace 
PhpMyAdmin\Config\Settings;

use function 
is_array;

// phpcs:disable Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps

/**
 * @psalm-immutable
 */
final class Transformations
{
    
/**
     * Displays a part of a string.
     * - The first option is the number of characters to skip from the beginning of the string (Default 0).
     * - The second option is the number of characters to return (Default: until end of string).
     * - The third option is the string to append and/or prepend when truncation occurs (Default: "…").
     *
     * @var array<int, int|string>
     * @psalm-var array{0: int, 1: 'all'|int, 2: string}
     */
    
public $Substring;

    
/**
     * Converts Boolean values to text (default 'T' and 'F').
     * - First option is for TRUE, second for FALSE. Nonzero=true.
     *
     * @var string[]
     * @psalm-var array{0: string, 1: string}
     */
    
public $Bool2Text;

    
/**
     * LINUX ONLY: Launches an external application and feeds it the column data via standard input.
     * Returns the standard output of the application. The default is Tidy, to pretty-print HTML code.
     * For security reasons, you have to manually edit the file
     * libraries/classes/Plugins/Transformations/Abs/ExternalTransformationsPlugin.php and list the tools
     * you want to make available.
     * - The first option is then the number of the program you want to use.
     * - The second option should be blank for historical reasons.
     * - The third option, if set to 1, will convert the output using htmlspecialchars() (Default 1).
     * - The fourth option, if set to 1, will prevent wrapping and ensure that the output appears
     *   all on one line (Default 1).
     *
     * @var array<int, int|string>
     * @psalm-var array{0: int, 1: string, 2: int, 3: int}
     */
    
public $External;

    
/**
     * Prepends and/or Appends text to a string.
     * - First option is text to be prepended. second is appended (enclosed in single quotes, default empty string).
     *
     * @var string[]
     * @psalm-var array{0: string, 1: string}
     */
    
public $PreApPend;

    
/**
     * Displays hexadecimal representation of data.
     * Optional first parameter specifies how often space will be added (defaults to 2 nibbles).
     *
     * @var string[]
     * @psalm-var array{0: 0|positive-int}
     */
    
public $Hex;

    
/**
     * Displays a TIME, TIMESTAMP, DATETIME or numeric unix timestamp column as formatted date.
     * - The first option is the offset (in hours) which will be added to the timestamp (Default: 0).
     * - Use second option to specify a different date/time format string.
     * - Third option determines whether you want to see local date or UTC one (use "local" or "utc" strings) for that.
     *   According to that, date format has different value - for "local" see the documentation
     *   for PHP's strftime() function and for "utc" it is done using gmdate() function.
     *
     * @var array<int, int|string>
     * @psalm-var array{0: 0|positive-int, 1: string, 2: 'local'|'utc'}
     */
    
public $DateFormat;

    
/**
     * Displays a clickable thumbnail.
     * The options are the maximum width and height in pixels.
     * The original aspect ratio is preserved.
     *
     * @var array<(int|string), (int|string|array<string, string>|null)>
     * @psalm-var array{
     *   0: 0|positive-int,
     *   1: 0|positive-int,
     *   wrapper_link: string|null,
     *   wrapper_params: array<array-key, string>
     * }
     */
    
public $Inline;

    
/**
     * Displays an image and a link; the column contains the filename.
     * - The first option is a URL prefix like "https://www.example.com/".
     * - The second and third options are the width and the height in pixels.
     *
     * @var array<int, int|string|null>
     * @psalm-var array{0: string|null, 1: 0|positive-int, 2: 0|positive-int}
     */
    
public $TextImageLink;

    
/**
     * Displays a link; the column contains the filename.
     * - The first option is a URL prefix like "https://www.example.com/".
     * - The second option is a title for the link.
     *
     * @var array<int, string|null>
     * @psalm-var array{0: string|null, 1: string|null, 2: bool|null}
     */
    
public $TextLink;

    
/**
     * @param array<int|string, mixed> $transformations
     */
    
public function __construct(array $transformations = [])
    {
        
$this->Substring $this->setSubstring($transformations);
        
$this->Bool2Text $this->setBool2Text($transformations);
        
$this->External $this->setExternal($transformations);
        
$this->PreApPend $this->setPreApPend($transformations);
        
$this->Hex $this->setHex($transformations);
        
$this->DateFormat $this->setDateFormat($transformations);
        
$this->Inline $this->setInline($transformations);
        
$this->TextImageLink $this->setTextImageLink($transformations);
        
$this->TextLink $this->setTextLink($transformations);
    }

    
/**
     * @param array<int|string, mixed> $transformations
     *
     * @return array<int, int|string>
     * @psalm-return array{0: int, 1: 'all'|int, 2: string}
     */
    
private function setSubstring(array $transformations): array
    {
        
$substring = [0'all''…'];
        if (isset(
$transformations['Substring']) && is_array($transformations['Substring'])) {
            if (isset(
$transformations['Substring'][0])) {
                
$substring[0] = (int) $transformations['Substring'][0];
            }

            if (isset(
$transformations['Substring'][1]) && $transformations['Substring'][1] !== 'all') {
                
$substring[1] = (int) $transformations['Substring'][1];
            }

            if (isset(
$transformations['Substring'][2])) {
                
$substring[2] = (string) $transformations['Substring'][2];
            }
        }

        return 
$substring;
    }

    
/**
     * @param array<int|string, mixed> $transformations
     *
     * @return string[]
     * @psalm-return array{0: string, 1: string}
     */
    
private function setBool2Text(array $transformations): array
    {
        
$bool2Text = ['T''F'];
        if (isset(
$transformations['Bool2Text']) && is_array($transformations['Bool2Text'])) {
            if (isset(
$transformations['Bool2Text'][0])) {
                
$bool2Text[0] = (string) $transformations['Bool2Text'][0];
            }

            if (isset(
$transformations['Bool2Text'][1])) {
                
$bool2Text[1] = (string) $transformations['Bool2Text'][1];
            }
        }

        return 
$bool2Text;
    }

    
/**
     * @param array<int|string, mixed> $transformations
     *
     * @return array<int, int|string>
     * @psalm-return array{0: int, 1: string, 2: int, 3: int}
     */
    
private function setExternal(array $transformations): array
    {
        
$external = [0'-f /dev/null -i -wrap -q'11];
        if (isset(
$transformations['External']) && is_array($transformations['External'])) {
            if (isset(
$transformations['External'][0])) {
                
$external[0] = (int) $transformations['External'][0];
            }

            if (isset(
$transformations['External'][1])) {
                
$external[1] = (string) $transformations['External'][1];
            }

            if (isset(
$transformations['External'][2])) {
                
$external[2] = (int) $transformations['External'][2];
            }

            if (isset(
$transformations['External'][3])) {
                
$external[3] = (int) $transformations['External'][3];
            }
        }

        return 
$external;
    }

    
/**
     * @param array<int|string, mixed> $transformations
     *
     * @return string[]
     * @psalm-return array{0: string, 1: string}
     */
    
private function setPreApPend(array $transformations): array
    {
        
$preApPend = [''''];
        if (isset(
$transformations['PreApPend']) && is_array($transformations['PreApPend'])) {
            if (isset(
$transformations['PreApPend'][0])) {
                
$preApPend[0] = (string) $transformations['PreApPend'][0];
            }

            if (isset(
$transformations['PreApPend'][1])) {
                
$preApPend[1] = (string) $transformations['PreApPend'][1];
            }
        }

        return 
$preApPend;
    }

    
/**
     * @param array<int|string, mixed> $transformations
     *
     * @return string[]
     * @psalm-return array{0: 0|positive-int}
     */
    
private function setHex(array $transformations): array
    {
        if (isset(
$transformations['Hex']) && is_array($transformations['Hex'])) {
            if (isset(
$transformations['Hex'][0])) {
                
$length = (int) $transformations['Hex'][0];
                if (
$length >= 0) {
                    return [
$length];
                }
            }
        }

        return [
2];
    }

    
/**
     * @param array<int|string, mixed> $transformations
     *
     * @return array<int, int|string>
     * @psalm-return array{0: 0|positive-int, 1: string, 2: 'local'|'utc'}
     */
    
private function setDateFormat(array $transformations): array
    {
        
$dateFormat = [0'''local'];
        if (isset(
$transformations['DateFormat']) && is_array($transformations['DateFormat'])) {
            if (isset(
$transformations['DateFormat'][0])) {
                
$offset = (int) $transformations['DateFormat'][0];
                if (
$offset >= 1) {
                    
$dateFormat[0] = $offset;
                }
            }

            if (isset(
$transformations['DateFormat'][1])) {
                
$dateFormat[1] = (string) $transformations['DateFormat'][1];
            }

            if (isset(
$transformations['DateFormat'][2]) && $transformations['DateFormat'][2] === 'utc') {
                
$dateFormat[2] = 'utc';
            }
        }

        return 
$dateFormat;
    }

    
/**
     * @param array<int|string, mixed> $transformations
     *
     * @return array<(int|string), (int|string|array<string, string>|null)>
     * @psalm-return array{
     *   0: 0|positive-int,
     *   1: 0|positive-int,
     *   wrapper_link: string|null,
     *   wrapper_params: array<array-key, string>
     * }
     */
    
private function setInline(array $transformations): array
    {
        
$inline = [100100'wrapper_link' => null'wrapper_params' => []];
        if (isset(
$transformations['Inline']) && is_array($transformations['Inline'])) {
            if (isset(
$transformations['Inline'][0])) {
                
$width = (int) $transformations['Inline'][0];
                if (
$width >= 0) {
                    
$inline[0] = $width;
                }
            }

            if (isset(
$transformations['Inline'][1])) {
                
$height = (int) $transformations['Inline'][1];
                if (
$height >= 0) {
                    
$inline[1] = $height;
                }
            }

            if (isset(
$transformations['Inline']['wrapper_link'])) {
                
$inline['wrapper_link'] = (string) $transformations['Inline']['wrapper_link'];
            }

            if (
                isset(
$transformations['Inline']['wrapper_params'])
                && 
is_array($transformations['Inline']['wrapper_params'])
            ) {
                
/**
                 * @var int|string $key
                 * @var mixed $value
                 */
                
foreach ($transformations['Inline']['wrapper_params'] as $key => $value) {
                    
$inline['wrapper_params'][$key] = (string) $value;
                }
            }
        }

        return 
$inline;
    }

    
/**
     * @param array<int|string, mixed> $transformations
     *
     * @return array<int, int|string|null>
     * @psalm-return array{0: string|null, 1: 0|positive-int, 2: 0|positive-int}
     */
    
private function setTextImageLink(array $transformations): array
    {
        
$textImageLink = [null10050];
        if (isset(
$transformations['TextImageLink']) && is_array($transformations['TextImageLink'])) {
            if (isset(
$transformations['TextImageLink'][0])) {
                
$textImageLink[0] = (string) $transformations['TextImageLink'][0];
            }

            if (isset(
$transformations['TextImageLink'][1])) {
                
$width = (int) $transformations['TextImageLink'][1];
                if (
$width >= 0) {
                    
$textImageLink[1] = $width;
                }
            }

            if (isset(
$transformations['TextImageLink'][2])) {
                
$height = (int) $transformations['TextImageLink'][2];
                if (
$height >= 0) {
                    
$textImageLink[2] = $height;
                }
            }
        }

        return 
$textImageLink;
    }

    
/**
     * @param array<int|string, mixed> $transformations
     *
     * @return array<int, string|null>
     * @psalm-return array{0: string|null, 1: string|null, 2: bool|null}
     */
    
private function setTextLink(array $transformations): array
    {
        
$textLink = [nullnullnull];
        if (isset(
$transformations['TextLink']) && is_array($transformations['TextLink'])) {
            if (isset(
$transformations['TextLink'][0])) {
                
$textLink[0] = (string) $transformations['TextLink'][0];
            }

            if (isset(
$transformations['TextLink'][1])) {
                
$textLink[1] = (string) $transformations['TextLink'][1];
            }

            if (isset(
$transformations['TextLink'][2])) {
                
$textLink[2] = (bool) $transformations['TextLink'][2];
            }
        }

        return 
$textLink;
    }
}

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