簡體   English   中英

如何在本地主機上獲取主頁網址?

[英]How to get the home url on the localhost?

所以我在我的本地主機上創建一個網站,文件夾名稱是“veco”,因此我的 URL 鏈接是http://localhost/veco/

我目前使用此代碼來獲取主頁網址“ http://localhost/veco/ ”:

<?php 
function home_url() {
    // output: /myproject/index.php
    $currentPath = $_SERVER['PHP_SELF']; 

    // output: Array ( [dirname] => /myproject [basename] => index.php [extension] => php [filename] => index ) 
    $pathInfo = pathinfo($currentPath); 

    // output: localhost
    $hostName = $_SERVER['HTTP_HOST']; 

    // output: http://
    $protocol = strtolower(substr($_SERVER["SERVER_PROTOCOL"],0,5))=='https://'?'https://':'http://';

    // return: http://localhost/myproject/
    return $protocol.$hostName.$pathInfo['dirname']."/";
}
?>

現在我在“關於”頁面上,我的 URL 現在是http://localhost/veco/about現在在關於頁面上,我做了一個表格

<form action="data/cs_menu.php" method="POST">
    <input type="text" name="f_menu">
    <input type="submit" name="save_menu">
</form>

現在,當我提交此表單時,它會將我重定向到http://localhost/veco/about/data/cs_menu.php ,這是正確的,但是當我使用 home_url 函數時,它給了我“ http://localhost/veco /data/ ",而不是 " http://localhost/veco/ "

有任何想法嗎? 我現在沒有使用 Wordpress,但是如果您熟悉 WordPress,它們有一個函數“home_url();” 它返回“ http://localhost/FILENAME/ ”,這是我試圖復制的。

我現在沒有使用 Wordpress,但是如果您熟悉 wordpress,它們有函數“home_url();”

WordPress 從數據庫中查找該值,該值是在您安裝 WordPress 時設置的。

通常,無法從站點上的任意頁面確定主頁的 URL。 您可以獲得的最接近的方法是沿着“主頁正好是此頁面上方的兩個目錄”的行手動向每個頁面添加規則。

你可以試試這個:

<?php echo "http://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; ?>

而且,如果您計划使用 https,則可以使用此功能:

function base_url(){
  return sprintf(
  "%s://%s%s",
  isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off' ? 'https' : 'http',
  $_SERVER['SERVER_NAME'],
  $_SERVER['REQUEST_URI']
 );
}

並這樣稱呼它:

echo url();
#=> http://127.0.0.1/foo

至於 $_SERVER 全局變量,可以在此處找到文檔

原始答案已發布在此線程上

你應該檢查一下,讓我知道這是否能解決你的問題。 希望這可以幫助。

伙計們,我終於找到了解決方案,它也是動態的。 我只編輯了我的函數並添加了這個:

   $home_url = (explode("/",$full_url));
   return $home_url[0]."//".$home_url[2]."/".$home_url[3];

現在這是完整的最終代碼:

function home_url() 
{
    // output: /myproject/index.php
    $currentPath = $_SERVER['PHP_SELF']; 

    // output: Array ( [dirname] => /myproject [basename] => index.php [extension] => php [filename] => index ) 
    $pathInfo = pathinfo($currentPath); 

    // output: localhost
    $hostName = $_SERVER['HTTP_HOST']; 

    // output: http://
    $protocol = strtolower(substr($_SERVER["SERVER_PROTOCOL"],0,5))=='https://'?'https://':'http://';

    // return: http://localhost/myproject/
    $full_url = $protocol.$hostName.$pathInfo['dirname']."/";
    $home_url = (explode("/",$full_url));
    return $home_url[0]."//".$home_url[2]."/".$home_url[3];

}

它可能有一些錯誤,但現在我沒有看到任何錯誤。 如果你能指出一些,那么請告訴我。 謝謝

暫無
暫無

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

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