簡體   English   中英

在PHP中獲取網站的根URL

[英]Get root url of the site in PHP

考慮我的項目目錄結構,如下所示:

-public_html
  -projects
    -folder1
      index.php \\code is written here
    +folder2
  +downloads

我正在嘗試通過$_SERVER['DOCUMENT_ROOT']獲取根目錄,但似乎返回的字符串不是我期望的形式。

我在網站內的目錄(基本上在public_html/projects/folder1 使用文檔根目錄,在網站/home/site_name/public_html上實現時,返回的字符串如下所示,如果要共享鏈接,該字符串將不起作用,因為我使用它來將文件存儲在目錄中。 所以,我希望類似的東西可以返回, www.site_name.com/downloads

__DIR__給出了整個文檔的路徑,從那里被稱為( folder1/index.php ),但是我想進入主文件夾( public_html/downloads ),而不是與索引文件位於同一文件夾中。

是否有任何其他php函數可以幫助訪問public_html中的downloads文件夾 ,並且可以像www.sitename.com/downloads/那樣進行訪問。

要返回當前php文件的文件夾,請使用此腳本。

$url = $_SERVER['REQUEST_URI']; //returns the current URL
$parts = explode('/',$url);
$dir = $_SERVER['SERVER_NAME'];
for ($i = 0; $i < count($parts) - 1; $i++) {
 $dir .= $parts[$i] . "/";
}
echo $dir;

您想使用$_SERVER['SERVER_NAME']獲取網站的根URL。 您可以使用它來獲取下載文件夾的URL。

$downloads_url = $_SERVER['SERVER_NAME'] . '/downloads/';

constants.php:

define('PROTOCOL',(!empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS'] == 'on')) ? 'https://' : 'http://',true);
define('DOMAIN',$_SERVER['HTTP_HOST']);
define('ROOT_URL', preg_replace("/\/$/",'',PROTOCOL.DOMAIN.str_replace(array('\\',"index.php","index.html"), '', dirname(htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES))),1).'/',true);// Remove backslashes for Windows compatibility

然后,在項目的索引中use

暫無
暫無

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

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