Your IP : 216.73.216.240


Current Path : /home/juvelize/saulnois/tmp/install_695d2cf0b4957/src/
Upload File :
Current File : /home/juvelize/saulnois/tmp/install_695d2cf0b4957/src/TUri.php

<?php
/*
* @package		Tech Fry Library
* @license		https://www.gnu.org/licenses/gpl-3.0.en.html
*/

namespace TechFry\Library;

defined('_JEXEC') or die;

use Joomla\Uri\Uri;
use Joomla\Uri\UriHelper;

// Class to access and manipulate URI (8 parts) - scheme (http), host, port, user, pass, path, query, fragment
// https://www.php.net/manual/en/function.parse-url.php

class TUri
{
    // Parts of Uri: scheme, host, port, path, query, fragment
    
    public $juri;
    
    public $url;

    public $parts;

    public $scheme;

    public $host;

    public $port;
    
    public $path;

    public $query;
    public $vars = [];
    
    public $fragment;

    public function __construct($url = '')
    {
        $this->url = $url;
        
        $this->juri = new Uri($url);

        $this->scheme = $this->juri->getScheme();
        $this->host = $this->juri->getHost();
        $this->port = $this->juri->getPort();
        $this->path = $this->juri->getPath();
        $this->query = $this->juri->getQuery();
        $this->vars = $this->juri->getQuery(true);
        $this->fragment = $this->juri->getFragment();
    }

    public function get_url()
    {
        return $this->juri->render();
    }
    
    // Returns Array
    public function parse_url()
    {
        return UriHelper::parse_url($this->url);
    }

    // http or https
    public function get_scheme()
    {
        return $this->scheme;
    }

    // subdomain.domain.tld
    public function get_host()
    {
        return $this->host;
    }

    // After host and before query string
    public function get_path()
    {
        return $this->path;
    }

    //  After the question mark ?
    public function get_query($parse = false)
    {
        if ($parse)
        {
            return $this->vars;
        }

        return $this->query;
    }

    // After the hash #
    public function get_fragment()
    {
        return $this->fragment;
    }

    public function get_var($name, $default = null)
    {
        return $this->juri->getVar($name, $default);
    }

    public function set_var($name, $value)
    {
        return $this->juri->setVar($name, $value);
    }

    public function del_var($name)
    {
        return $this->juri->delVar($name);
    }

    public function set_query($query)
    {
        $this->juri->setQuery($query);
    }

    public function set_scheme($scheme)
    {
        $this->juri->setScheme($scheme);
    }

    public function set_host($host)
    {
        $this->juri->setHost($host);
    }

    public function set_port($port)
    {
        $this->juri->setPort($port);
    }

    public function set_path($path)
    {
        $this->juri->setPath($path);
    }

    public function set_fragment($fragment)
    {
        $this->juri->setFragment($fragment);
    }

    public function get_filename()
    {
        $parts = pathinfo($this->url);
        
        return $parts['basename'];
    }

    public function get_ext()
    {
        $parts = pathinfo($this->url);
        
        return $parts['extension'];
    }
}