API16:JURI/getInstance
From Joomla! Documentation
This Namespace has been archived - Please Do Not Edit or Create Pages in this namespace. Pages contain information for a Joomla! version which is no longer supported. It exists only as a historical reference, will not be improved and its content may be incomplete.
Contents |
Description
Returns the global JURI object, only creating it if it doesn't already exist.
Syntax
static getInstance($uri= 'SERVER')
| Parameter Name | Default Value | Description |
|---|---|---|
| $uri | 'SERVER' | $uri The URI to parse. [optional: if null uses script URI] |
Returns
The URI object.
Defined in
libraries/joomla/environment/uri.php
Importing
jimport( 'joomla.environment.uri' );
Source Body
public static function getInstance($uri = 'SERVER') { static $instances = array(); if (!isset($instances[$uri])) { // Are we obtaining the URI from the server? if ($uri == 'SERVER') { // Determine if the request was over SSL (HTTPS). if (isset($_SERVER['HTTPS']) && !empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS']) != 'off')) { $https = 's://'; } else { $https = '://'; } /* * Since we are assigning the URI from the server variables, we first need * to determine if we are running on apache or IIS. If PHP_SELF and REQUEST_URI * are present, we will assume we are running on apache. */ if (!empty($_SERVER['PHP_SELF']) && !empty ($_SERVER['REQUEST_URI'])) { // To build the entire URI we need to prepend the protocol, and the http host // to the URI string. $theURI = 'http' . $https . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; // Since we do not have REQUEST_URI to work with, we will assume we are // running on IIS and will therefore need to work some magic with the SCRIPT_NAME and // QUERY_STRING environment variables. // } else { // IIS uses the SCRIPT_NAME variable instead of a REQUEST_URI variable... thanks, MS $theURI = 'http' . $https . $_SERVER['HTTP_HOST'] . $_SERVER['SCRIPT_NAME']; // If the query string exists append it to the URI string if (isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING'])) { $theURI .= '?' . $_SERVER['QUERY_STRING']; } } // Now we need to clean what we got since we can't trust the server var $theURI = urldecode($theURI); $theURI = str_replace('"', '"',$theURI); $theURI = str_replace('<', '<',$theURI); $theURI = str_replace('>', '>',$theURI); $theURI = preg_replace('/eval\((.*)\)/', '', $theURI); $theURI = preg_replace('/[\\\"\\\'][\\s]*javascript:(.*)[\\\"\\\']/', '""', $theURI); } else { // We were given a URI $theURI = $uri; } // Create the new JURI instance $instances[$uri] = new JURI($theURI); } return $instances[$uri]; }
[Edit See Also] SeeAlso:JURI/getInstance
Examples
<CodeExamplesForm />
