[英]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.