本文整理汇总了PHP中Icinga\Web\Url::setBaseUrl方法的典型用法代码示例。如果您正苦于以下问题:PHP Url::setBaseUrl方法的具体用法?PHP Url::setBaseUrl怎么用?PHP Url::setBaseUrl使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Icinga\Web\Url
的用法示例。
在下文中一共展示了Url::setBaseUrl方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: fromPath
/**
* Create a new Url class representing the given url
*
* If $params are given, those will be added to the urls parameters
* and overwrite any existing parameters
*
* @param string $url The string representation of the url to parse
* @param array $params An array of parameters that should additionally be considered for the url
* @param Zend_Request $request A request to use instead of the default one
*
* @return Url
*/
public static function fromPath($url, array $params = array(), $request = null)
{
if ($request === null) {
$request = self::getRequest();
}
if (!is_string($url)) {
throw new ProgrammingError('url "%s" is not a string', $url);
}
$urlObject = new Url();
$baseUrl = $request->getBaseUrl();
$urlObject->setBaseUrl($baseUrl);
$urlParts = parse_url($url);
if (isset($urlParts['path'])) {
if ($baseUrl !== '' && strpos($urlParts['path'], $baseUrl) === 0) {
$urlObject->setPath(substr($urlParts['path'], strlen($baseUrl)));
} else {
$urlObject->setPath($urlParts['path']);
}
}
// TODO: This has been used by former filter implementation, remove it:
if (isset($urlParts['query'])) {
$params = UrlParams::fromQueryString($urlParts['query'])->mergeValues($params);
}
if (isset($urlParts['fragment'])) {
$urlObject->setAnchor($urlParts['fragment']);
}
$urlObject->setParams($params);
return $urlObject;
}
示例2: fromPath
/**
* Create a new Url class representing the given url
*
* If $params are given, those will be added to the urls parameters
* and overwrite any existing parameters
*
* @param string $url The string representation of the url to parse
* @param array $params An array of parameters that should additionally be considered for the url
* @param Zend_Request $request A request to use instead of the default one
*
* @return Url
*/
public static function fromPath($url, array $params = array(), $request = null)
{
if ($request === null) {
$request = self::getRequest();
}
if (!is_string($url)) {
throw new ProgrammingError(sprintf('url "%s" is not a string', $url));
}
$urlObject = new Url();
$baseUrl = $request->getBaseUrl();
$urlObject->setBaseUrl($baseUrl);
// Fetch fragment manually and remove it from the url, to 'help' the parse_url() function
// parsing the url properly. Otherwise calling the function with a fragment, but without a
// query will cause unpredictable behaviour.
$url = self::stripUrlFragment($url);
$urlParts = parse_url($url);
if (isset($urlParts['path'])) {
if ($baseUrl !== '' && strpos($urlParts['path'], $baseUrl) === 0) {
$urlObject->setPath(substr($urlParts['path'], strlen($baseUrl)));
} else {
$urlObject->setPath($urlParts['path']);
}
}
if (isset($urlParts['query'])) {
$urlParams = array();
parse_str($urlParts['query'], $urlParams);
$params = array_merge($urlParams, $params);
}
$fragment = self::getUrlFragment($url);
if ($fragment !== '') {
$urlObject->setAnchor($fragment);
}
$urlObject->setParams($params);
return $urlObject;
}
示例3: fromPath
/**
* Create a new Url class representing the given url
*
* If $params are given, those will be added to the urls parameters
* and overwrite any existing parameters
*
* @param string $url The string representation of the url to parse
* @param array $params An array of parameters that should additionally be considered for the url
* @param Zend_Request $request A request to use instead of the default one
*
* @return Url
*/
public static function fromPath($url, array $params = array(), $request = null)
{
if ($request === null) {
$request = self::getRequest();
}
if (!is_string($url)) {
throw new ProgrammingError('url "%s" is not a string', $url);
}
$urlObject = new Url();
if ($url === '#') {
$urlObject->setPath($url);
return $urlObject;
}
$urlParts = parse_url($url);
if (isset($urlParts['scheme']) && ($urlParts['scheme'] !== $request->getScheme() || isset($urlParts['host']) && $urlParts['host'] !== $request->getServer('SERVER_NAME') || isset($urlParts['port']) && $urlParts['port'] != $request->getServer('SERVER_PORT'))) {
$baseUrl = $urlParts['scheme'] . '://' . $urlParts['host'] . (isset($urlParts['port']) ? ':' . $urlParts['port'] : '');
$urlObject->setIsExternal();
} else {
$baseUrl = '';
}
if (isset($urlParts['path'])) {
$urlPath = $urlParts['path'];
if ($urlPath && $urlPath[0] === '/') {
if ($baseUrl) {
$urlPath = substr($urlPath, 1);
} else {
$requestBaseUrl = $request->getBaseUrl();
if ($requestBaseUrl && $requestBaseUrl !== '/' && strpos($urlPath, $requestBaseUrl) === 0) {
$urlPath = substr($urlPath, strlen($requestBaseUrl) + 1);
$baseUrl = $requestBaseUrl;
}
}
} elseif (!$baseUrl) {
$baseUrl = $request->getBaseUrl();
}
$urlObject->setPath($urlPath);
} elseif (!$baseUrl) {
$baseUrl = $request->getBaseUrl();
}
// TODO: This has been used by former filter implementation, remove it:
if (isset($urlParts['query'])) {
$params = UrlParams::fromQueryString($urlParts['query'])->mergeValues($params);
}
if (isset($urlParts['fragment'])) {
$urlObject->setAnchor($urlParts['fragment']);
}
$urlObject->setBaseUrl($baseUrl);
$urlObject->setParams($params);
return $urlObject;
}