Вход Регистрация
Файл: core/request.php
Строк: 147
<?php

final class PEEP_Request
{
    
/**
     * Request uri.
     *
     * @var string
     */
    
private $uri;
    private 
$uriParams;

    
/**
     * Singleton instance.
     *
     * @var PEEP_Request
     */
    
private static $classInstance;

    
/**
     * Returns an instance of class (singleton pattern implementation).
     *
     * @return PEEP_Request
     */
    
public static function getInstance()
    {
        if ( 
self::$classInstance === null )
        {
            
self::$classInstance = new self();
        }

        return 
self::$classInstance;
    }

    
/**
     * Constructor.
     */
    
private function __construct()
    {
        if ( 
get_magic_quotes_gpc() )
        {
            
$_GET $this->stripSlashesRecursive($_GET);
            
$_POST $this->stripSlashesRecursive($_POST);
        }
    }

    
/**
     * @return array
     */
    
public function getUriParams()
    {
        return 
$this->uriParams;
    }

    
/**
     * @param array $uriParams
     */
    
public function setUriParams( array $uriParams )
    {
        
$this->uriParams $uriParams;
    }

    
/**
     * Returns real request uri.
     *
     * @return string
     */
    
public function getRequestUri()
    {
        if ( 
$this->uri === null )
        {
            
$this->uri UTIL_Url::getRealRequestUri(PEEP::getRouter()->getBaseUrl(), $_SERVER['REQUEST_URI']);
        }

        return 
$this->uri;
    }

    
/**
     * Returns remote ip address.
     *
     * @return string
     */
    
public function getRemoteAddress()
    {
        return isset(
$_SERVER['HTTP_X_REAL_IP']) ? $_SERVER['HTTP_X_REAL_IP'] : $_SERVER['REMOTE_ADDR'];
    }

    
/**
     * Returns request type.
     *
     * @return string
     */
    
public function getRequestType()
    {
        return 
mb_strtoupper(isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : 'GET');
    }
//    public function getContentType()
//    {
//        return $_SERVER[''];
//    }

    /**
     * Indicates if request is ajax.
     *
     * @return boolean
     */
    
public function isAjax()
    {
        return ( isset(
$_SERVER['HTTP_X_REQUESTED_WITH']) && mb_strtoupper($_SERVER['HTTP_X_REQUESTED_WITH']) === 'XMLHTTPREQUEST' );
    }

    
/**
     * Indicates if request is post.
     *
     * @return boolean
     */
    
public function isPost()
    {
        return ( 
mb_strtoupper($_SERVER['REQUEST_METHOD']) === 'POST' );
    }

    
/**
     * Returns request agent name.
     *
     * @return string
     */
    
public function getUserAgentName()
    {
        return 
UTIL_Browser::getBrowser($_SERVER['HTTP_USER_AGENT']);
    }

    
/**
     * Returns user agent version;
     *
     * @return string
     */
    
public function getUserAgentVersion()
    {
        return 
UTIL_Browser::getVersion($_SERVER['HTTP_USER_AGENT']);
    }

    
/**
     * Returns request agent platform.
     *
     * @return string
     */
    
public function getUserAgentPlatform()
    {
        return 
UTIL_Browser::getPlatform($_SERVER['HTTP_USER_AGENT']);
    }

    
/**
     * Indicates if user agent is mobile.
     *
     * @return boolean
     */
    
public function isMobileUserAgent()
    {
        return 
UTIL_Browser::isMobile($_SERVER['HTTP_USER_AGENT']);
    }

    
/**
     * Builds and updates url query string.
     *
     * @param string $url
     * @param array $paramsToUpdate
     * @param string $anchor
     * @return string
     */
    
public function buildUrlQueryString$url null, array $paramsToUpdate = array(), $anchor null )
    {
        
$url = ( $url === null ) ? PEEP_URL_HOME $this->getRequestUri() : trim($url);

        
$requestUrlArray parse_url($url);

        
$currentParams = array();

        if ( isset(
$requestUrlArray['query']) )
        {
            
parse_str($requestUrlArray['query'], $currentParams);
        }

        
$currentParams array_merge($currentParams$paramsToUpdate);

        return (empty(
$requestUrlArray['scheme']) ? "" $requestUrlArray['scheme'] ) . '://' $requestUrlArray['host'] . ( empty($requestUrlArray['path']) ? '' $requestUrlArray['path'] ) .
            ( empty(
$requestUrlArray['port']) ? '' ':' . (int) $requestUrlArray['port'] ) . '?' http_build_query($currentParams) . ( $anchor === null '' '#' trim($anchor) );
    }

    
/**
     * @param array $value
     * @return array
     */
    
private function stripSlashesRecursive$value )
    {
        
$value is_array($value) ? array_map(array($this'stripSlashesRecursive'), $value) : stripslashes($value);
        return 
$value;
    }

    public function 
isSsl()
    {
        
$isHttps null;

        if ( 
array_key_exists("HTTPS"$_SERVER) )
        {
            
$isHttps = ($_SERVER["HTTPS"] == "on");
        }
        else if ( 
array_key_exists("REQUEST_SCHEME"$_SERVER) )
        {
            
$isHttps = (strtolower($_SERVER["REQUEST_SCHEME"]) == "https");
        }
        else if ( 
array_key_exists("SERVER_PORT"$_SERVER) )
        {
            
$isHttps = ($_SERVER["SERVER_PORT"] == "443");
        }

        return 
$isHttps;
    }
}
Онлайн: 1
Реклама