!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)

/uploads/script/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/   drwxr-xr-x
Free 13.33 GB of 57.97 GB (23%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     Sample.php (6.26 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\Writer\IWriter;
use 
PhpOffice\PhpSpreadsheet\Writer\Pdf;
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');
        
$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]));
            
$info pathinfo($file);
            
$category str_replace('_'' '$info['dirname']);
            
$name str_replace('_'' '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);
            if (
$writer instanceof Pdf) {
                
// PDF writer needs temporary directory
                
$tempDir $this->getTemporaryFolder();
                
$writer->setTempDir($tempDir);
            }
            
$callStartTime microtime(true);
            
$writer->save($path);
            
$this->logWrite($writer$path$callStartTime);
        }

        
$this->logEndingNotes();
    }

    
/**
     * Returns the temporary directory and make sure it exists.
     *
     * @return string
     */
    
private function getTemporaryFolder()
    {
        
$tempFolder sys_get_temp_dir() . '/phpspreadsheet';
        if (!
is_dir($tempFolder)) {
            if (!
mkdir($tempFolder) && !is_dir($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('.' $originalExtension'.' $extensionbasename($filename));
    }

    
/**
     * Return a random temporary file name.
     *
     * @param string $extension
     *
     * @return string
     */
    
public function getTemporaryFilename($extension 'xlsx')
    {
        
$temporaryFilename tempnam($this->getTemporaryFolder(), 'phpspreadsheet-');
        
unlink($temporaryFilename);

        return 
$temporaryFilename '.' $extension;
    }

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

    
/**
     * 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.0061 ]--