簡體   English   中英

從URL獲取本地主機項目名稱

[英]Get localhost project name from url

如果我有一個像http://localhost/project1/這樣的http://localhost/project1/我如何從網址中獲取project1名稱

我正在嘗試實現的是localhost $_SERVER['HTTP_HOST'] . '/' . $project $_SERVER['HTTP_HOST'] . '/' . $project

if (isset($_SERVER['HTTPS']) && (($_SERVER['HTTPS'] == 'on') || ($_SERVER['HTTPS'] == '1'))) {
echo 'https://' . $_SERVER['HTTP_HOST'];
} elseif ($_SERVER['HTTP_HOST'] == 'localhost') {
echo 'http://' . $_SERVER['HTTP_HOST'] . '/'; // GET PROJECT NAME Place after .'/'.
} else {
echo 'http://' . $_SERVER['HTTP_HOST'] . '/';
} 

您可以使用parse_url()函數檢索URL的部分:

$url = 'http://localhost/project1/';
$parts = parse_url($url);
print_r($parts);

輸出:

Array
(
    [scheme] => http
    [host] => localhost
    [path] => /project1/
)

或者,如果您想直接獲取路徑:

$path = parse_url($url, PHP_URL_PATH);
// => /project1/

您可以使用$_SERVER['REQUEST_URI']訪問請求的URI。

因此,要在您的URL中獲取項目名稱,您可以執行以下操作:

$project = explode('/', $_SERVER['REQUEST_URI'])[1];

要獲得完整的主機或項目,您可以執行以下操作:

function getFullHost()
{
    $protocole = $_SERVER['REQUEST_SCHEME'].'://';
    $host = $_SERVER['HTTP_HOST'] . '/';
    $project = explode('/', $_SERVER['REQUEST_URI'])[1];
    return $protocole . $host . $project;
}

如果您有多個子目錄,更好的方法是:

function getFullHost()
{
    $protocole = $_SERVER['REQUEST_SCHEME'].'://';
    $host = $_SERVER['HTTP_HOST'] . '/';
    $project = explode('/', $_SERVER['REQUEST_URI']);
    array_pop($project);
    array_shift($project);
    $path = implode('/', $project);
    return $protocole . $host . $path;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM