getFirstPathElement() public static method

Retrieve the first element of the URL path.
Author: Andreas Solberg, UNINETT AS (andreas.solberg@uninett.no)
public static getFirstPathElement ( boolean $trailingslash = true ) : string
$trailingslash boolean Whether to add a trailing slash to the element or not. Defaults to true.
return string The first element of the URL path, with an optional, trailing slash.
Example #1
0
 /**
  * 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/].');
     }
 }
Example #2
0
<?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();
Example #3
0
 /**
  * @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(), '/');
 }