从 URL 中去除路径 - 没有内置函数


strip path from url - no built in function?

给定一个URL:

http://mysite.com/this-is/the/path

我只想要方案和主机,即 http://mysite.com/

目前我正在使用parse_url,然后像这样重新构建它:

$urlParts = parse_url($url);
$newUrl = $urlParts['scheme'] . "://" . $urlParts['host'] . "/";

没有PHP函数可以剥离路径吗?

我不知道。这是一个很好的例子,您可以在其中考虑编写自己的公共函数。

public function stripUrlPath($url){
    $urlParts = parse_url($url);
    $newUrl = $urlParts['scheme'] . "://" . $urlParts['host'] . "/";
    return $newUrl;
}

然后在整个代码中使用它:

$newUrl = stripUrlPath($oldUrl);

您可以使用正则表达式:

$url = 'http://mysite.com/this-is/the/path';
$pattern = '~^(.*?//.*?)/.*~';
preg_match($pattern, $url, $matches);
echo $matches[1]; // http://mysite.com

但是,我会像您当前所做的那样使用 parse_url() 并重建字符串。

<?php
  echo 'http://' . $_SERVER['HTTP_HOST'] . '/';
?>