[英]PHP get website root absolute URL in server?
我非常依賴$_SERVER["DOCUMENT_ROOT"]
來獲取絕對路徑。 但是,這不適用於URL未指向根的站點。
我將網站存儲在以下文件夾中:
都直接在根內。 有沒有辦法在服務器中獲取當前站點根目錄的路徑?
它應該返回:
/var/chroot/home/content/02/6945202/html/site1 // If the site is stored in folder 'site1'
/var/chroot/home/content/02/6945202/html // If the site is stored in the root
您只需將dirname($_SERVER['SCRIPT_NAME'])
附加到$_SERVER['DOCUMENT_ROOT']
。
更新
該網站似乎是“掛載”在該文件夾上的目錄,因此SCRIPT_NAME
顯然是/
。
因此,要完成這項工作,您必須使用__DIR__
或dirname(__FILE__)
來查找腳本在文件系統中的位置。
更新2
整個站點沒有單一的index.php
控制器,因此也不起作用。
下面的表達式用字符串“減法”來查找公共路徑。 你有一個已知的前綴(文檔根),一個未知的(根文件夾)和一個已知的后綴(腳本路徑),所以要找到前兩個,你取完整的絕對路徑( __FILE__
)並減去已知的后綴:
substr(__FILE__, 0, -strlen($_SERVER['SCRIPT_NAME']));
如果包含的文件需要此值,則必須先將其存儲在常量中,然后才能包含依賴腳本。 。
對於未來的谷歌,這對我也有用
substr(substr(__FILE__, strlen(realpath($_SERVER['DOCUMENT_ROOT']))), 0, - strlen(basename(__FILE__)));
只需使用getcwd()
獲取當前腳本所在文件夾的當前絕對服務器路徑。
您可以在網站頂部定義一個常量,以便網站的其余部分可以依賴該路徑。
define('MY_SERVER_PATH', getcwd());
使用以下方法從服務器設置中獲取絕對根URL
str_replace($_SERVER['DOCUMENT_ROOT']."/",$_SERVER['PHPRC'],$_SERVER['REAL_DOCUMENT_ROOT'])
或使用getcwd() 。 它獲取應用程序的當前工作目錄
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.