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

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

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

Safe-mode: OFF (not secure)

/var/www/html/main_file/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/   drwxr-xr-x
Free 13.11 GB of 57.97 GB (22.62%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     Sample.php (7.82 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace PhpOffice\PhpSpreadsheet\Helper;

use 
PhpOffice\PhpSpreadsheet\IOFactory;
use 
PhpOffice\PhpSpreadsheet\Spreadsheet;
use 
PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
use 
PhpOffice\PhpSpreadsheet\Writer\IWriter;
use 
RecursiveDirectoryIterator;
use 
RecursiveIteratorIterator;
use 
RecursiveRegexIterator;
use 
ReflectionClass;
use 
RegexIterator;
use 
RuntimeException;

/**
 * Helper class to be used in sample code.
 */
class Sample
{
    
/**
     * Returns whether we run on CLI or browser.
     *
     * @return bool
     */
    
public function isCli()
    {
        return 
PHP_SAPI === 'cli';
    }

    
/**
     * Return the filename currently being executed.
     *
     * @return string
     */
    
public function getScriptFilename()
    {
        return 
basename($_SERVER['SCRIPT_FILENAME'], '.php');
    }

    
/**
     * Whether we are executing the index page.
     *
     * @return bool
     */
    
public function isIndex()
    {
        return 
$this->getScriptFilename() === 'index';
    }

    
/**
     * Return the page title.
     *
     * @return string
     */
    
public function getPageTitle()
    {
        return 
$this->isIndex() ? 'PHPSpreadsheet' $this->getScriptFilename();
    }

    
/**
     * Return the page heading.
     *
     * @return string
     */
    
public function getPageHeading()
    {
        return 
$this->isIndex() ? '' '<h1>' str_replace('_'' '$this->getScriptFilename()) . '</h1>';
    }

    
/**
     * Returns an array of all known samples.
     *
     * @return string[][] [$name => $path]
     */
    
public function getSamples()
    {
        
// Populate samples
        
$baseDir realpath(__DIR__ '/../../../samples');
        if (
$baseDir === false) {
            
// @codeCoverageIgnoreStart
            
throw new RuntimeException('realpath returned false');
            
// @codeCoverageIgnoreEnd
        
}
        
$directory = new RecursiveDirectoryIterator($baseDir);
        
$iterator = new RecursiveIteratorIterator($directory);
        
$regex = new RegexIterator($iterator'/^.+\.php$/'RecursiveRegexIterator::GET_MATCH);

        
$files = [];
        foreach (
$regex as $file) {
            
$file str_replace(str_replace('\\''/'$baseDir) . '/'''str_replace('\\''/'$file[0]));
            if (
is_array($file)) {
                
// @codeCoverageIgnoreStart
                
throw new RuntimeException('str_replace returned array');
                
// @codeCoverageIgnoreEnd
            
}
            
$info pathinfo($file);
            
$category str_replace('_'' '$info['dirname'] ?? '');
            
$name str_replace('_'' ', (string) preg_replace('/(|\.php)/'''$info['filename']));
            if (!
in_array($category, ['.''boostrap''templates'])) {
                if (!isset(
$files[$category])) {
                    
$files[$category] = [];
                }
                
$files[$category][$name] = $file;
            }
        }

        
// Sort everything
        
ksort($files);
        foreach (
$files as &$f) {
            
asort($f);
        }

        return 
$files;
    }

    
/**
     * Write documents.
     *
     * @param string $filename
     * @param string[] $writers
     */
    
public function write(Spreadsheet $spreadsheet$filename, array $writers = ['Xlsx''Xls']): void
    
{
        
// Set active sheet index to the first sheet, so Excel opens this as the first sheet
        
$spreadsheet->setActiveSheetIndex(0);

        
// Write documents
        
foreach ($writers as $writerType) {
            
$path $this->getFilename($filenamemb_strtolower($writerType));
            
$writer IOFactory::createWriter($spreadsheet$writerType);
            
$callStartTime microtime(true);
            
$writer->save($path);
            
$this->logWrite($writer$path/** @scrutinizer ignore-type */ $callStartTime);
        }

        
$this->logEndingNotes();
    }

    protected function 
isDirOrMkdir(string $folder): bool
    
{
        return 
\is_dir($folder) || \mkdir($folder);
    }

    
/**
     * Returns the temporary directory and make sure it exists.
     *
     * @return string
     */
    
private function getTemporaryFolder()
    {
        
$tempFolder sys_get_temp_dir() . '/phpspreadsheet';
        if (!
$this->isDirOrMkdir($tempFolder)) {
            throw new 
RuntimeException(sprintf('Directory "%s" was not created'$tempFolder));
        }

        return 
$tempFolder;
    }

    
/**
     * Returns the filename that should be used for sample output.
     *
     * @param string $filename
     * @param string $extension
     *
     * @return string
     */
    
public function getFilename($filename$extension 'xlsx')
    {
        
$originalExtension pathinfo($filenamePATHINFO_EXTENSION);

        return 
$this->getTemporaryFolder() . '/' str_replace('.' /** @scrutinizer ignore-type */ $originalExtension'.' $extensionbasename($filename));
    }

    
/**
     * Return a random temporary file name.
     *
     * @param string $extension
     *
     * @return string
     */
    
public function getTemporaryFilename($extension 'xlsx')
    {
        
$temporaryFilename tempnam($this->getTemporaryFolder(), 'phpspreadsheet-');
        if (
$temporaryFilename === false) {
            
// @codeCoverageIgnoreStart
            
throw new RuntimeException('tempnam returned false');
            
// @codeCoverageIgnoreEnd
        
}
        
unlink($temporaryFilename);

        return 
$temporaryFilename '.' $extension;
    }

    public function 
log(string $message): void
    
{
        
$eol $this->isCli() ? PHP_EOL '<br />';
        echo 
date('H:i:s ') . $message $eol;
    }

    public function 
titles(string $categorystring $functionName, ?string $description null): void
    
{
        
$this->log(sprintf('%s Functions:'$category));
        
$description === null
            
$this->log(sprintf('Function: %s()'rtrim($functionName'()')))
            : 
$this->log(sprintf('Function: %s() - %s.'rtrim($functionName'()'), rtrim($description'.')));
    }

    public function 
displayGrid(array $matrix): void
    
{
        
$renderer = new TextGrid($matrix$this->isCli());
        echo 
$renderer->render();
    }

    public function 
logCalculationResult(
        
Worksheet $worksheet,
        
string $functionName,
        
string $formulaCell,
        ?
string $descriptionCell null
    
): void {
        if (
$descriptionCell !== null) {
            
$this->log($worksheet->getCell($descriptionCell)->getValue());
        }
        
$this->log($worksheet->getCell($formulaCell)->getValue());
        
$this->log(sprintf('%s() Result is '$functionName) . $worksheet->getCell($formulaCell)->getCalculatedValue());
    }

    
/**
     * Log ending notes.
     */
    
public function logEndingNotes(): void
    
{
        
// Do not show execution time for index
        
$this->log('Peak memory usage: ' . (memory_get_peak_usage(true) / 1024 1024) . 'MB');
    }

    
/**
     * Log a line about the write operation.
     *
     * @param string $path
     * @param float $callStartTime
     */
    
public function logWrite(IWriter $writer$path$callStartTime): void
    
{
        
$callEndTime microtime(true);
        
$callTime $callEndTime $callStartTime;
        
$reflection = new ReflectionClass($writer);
        
$format $reflection->getShortName();
        
$message "Write {$format} format to <code>{$path}</code>  in " sprintf('%.4f'$callTime) . ' seconds';

        
$this->log($message);
    }

    
/**
     * Log a line about the read operation.
     *
     * @param string $format
     * @param string $path
     * @param float $callStartTime
     */
    
public function logRead($format$path$callStartTime): void
    
{
        
$callEndTime microtime(true);
        
$callTime $callEndTime $callStartTime;
        
$message "Read {$format} format from <code>{$path}</code>  in " sprintf('%.4f'$callTime) . ' seconds';

        
$this->log($message);
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

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

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

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