Retrieve the first element of the URL path.
public static getFirstPathElement ( boolean $trailingslash = true ) : string | ||
$trailingslash | boolean | Whether to add a trailing slash to the element or not. Defaults to true. |
Результат | string | The first element of the URL path, with an optional, trailing slash. |
/** * Retrieve the absolute path of the SimpleSAMLphp installation, relative to the root of the website. * * For example: simplesaml/ * * The path will always end with a '/' and never have a leading slash. * * @return string The absolute path relative to the root of the website. * * @throws SimpleSAML_Error_Exception If the format of 'baseurlpath' is incorrect. */ public function getBaseURL() { $baseURL = $this->getString('baseurlpath', 'simplesaml/'); if (preg_match('/^\\*(.*)$/D', $baseURL, $matches)) { // deprecated behaviour, will be removed in the future return \SimpleSAML\Utils\HTTP::getFirstPathElement(false) . $matches[1]; } if (preg_match('#^https?://[^/]*/(.*)$#', $baseURL, $matches)) { // we have a full url, we need to strip the path return $matches[1]; } elseif ($baseURL === '' || $baseURL === '/') { // Root directory of site return ''; } elseif (preg_match('#^/?([^/]?.*/)#D', $baseURL, $matches)) { // local path only return $matches[1]; } else { // invalid format throw new SimpleSAML_Error_Exception('Incorrect format for option \'baseurlpath\'. Value is: "' . $this->getString('baseurlpath', 'simplesaml/') . '". Valid format is in the form' . ' [(http|https)://(hostname|fqdn)[:port]]/[path/to/simplesaml/].'); } }
<?php require_once '../_include.php'; /* Load simpleSAMLphp, configuration */ $config = SimpleSAML_Configuration::getInstance(); $session = SimpleSAML_Session::getSessionFromRequest(); /* Check if valid local session exists.. */ SimpleSAML\Utils\Auth::requireAdmin(); $attributes = array(); $attributes['HTTP_HOST'] = array($_SERVER['HTTP_HOST']); $attributes['HTTPS'] = isset($_SERVER['HTTPS']) ? array($_SERVER['HTTPS']) : array(); $attributes['SERVER_PROTOCOL'] = array($_SERVER['SERVER_PROTOCOL']); $attributes['SERVER_PORT'] = array($_SERVER['SERVER_PORT']); $attributes['Utilities_getBaseURL()'] = array(\SimpleSAML\Utils\HTTP::getBaseURL()); $attributes['Utilities_getSelfHost()'] = array(\SimpleSAML\Utils\HTTP::getSelfHost()); $attributes['Utilities_selfURLhost()'] = array(\SimpleSAML\Utils\HTTP::getSelfURLHost()); $attributes['Utilities_selfURLNoQuery()'] = array(\SimpleSAML\Utils\HTTP::getSelfURLNoQuery()); $attributes['Utilities_getSelfHostWithPath()'] = array(\SimpleSAML\Utils\HTTP::getSelfHostWithPath()); $attributes['Utilities_getFirstPathElement()'] = array(\SimpleSAML\Utils\HTTP::getFirstPathElement()); $attributes['Utilities_selfURL()'] = array(\SimpleSAML\Utils\HTTP::getSelfURL()); $template = new SimpleSAML_XHTML_Template($config, 'hostnames.php'); $template->data['remaining'] = $session->getAuthData('admin', 'Expire') - time(); $template->data['attributes'] = $attributes; $template->data['valid'] = 'na'; $template->data['logout'] = null; $template->show();
/** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::getFirstPathElement() instead. */ public static function getFirstPathElement($trailingslash = true) { return \SimpleSAML\Utils\HTTP::getFirstPathElement($trailingslash); }
/** * Retrieve the absolute path of the SimpleSAMLphp installation, relative to the root of the website. * * For example: simplesaml/ * * The path will always end with a '/' and never have a leading slash. * * @return string The absolute path relative to the root of the website. * * @throws SimpleSAML\Error\CriticalConfigurationError If the format of 'baseurlpath' is incorrect. * * @deprecated This method will be removed in SimpleSAMLphp 2.0. Please use getBasePath() instead. */ public function getBaseURL() { if (!$this->deprecated_base_url_used) { $this->deprecated_base_url_used = true; SimpleSAML\Logger::warning("SimpleSAML_Configuration::getBaseURL() is deprecated, please use getBasePath() instead."); } if (preg_match('/^\\*(.*)$/D', $this->getString('baseurlpath', 'simplesaml/'), $matches)) { // deprecated behaviour, will be removed in the future return \SimpleSAML\Utils\HTTP::getFirstPathElement(false) . $matches[1]; } return ltrim($this->getBasePath(), '/'); }