2012-02-20 46 views
0

我用這個$路徑在我的HostGator的共享主機賬戶和它完美的作品:RESELLER帳戶上的等效路徑?

$path = dirname($_SERVER["DOCUMENT_ROOT"]).'/'; 

即這條道路是/家/用戶名/的public_html/

這裏是我如何使用它的一個例子:

<?php 
$path = dirname($_SERVER["DOCUMENT_ROOT"]).'/'; 
include($path.'stats.php'); 
?> 

我的問題是,這個$路徑確實在我的新HostGator的工作經銷商帳戶。

有誰知道爲什麼這不適用於經銷商託管和我可以使用什麼$路徑呢?

理想情況下,我會使用「if else」,以便我可以在我的共享和經銷商帳戶上使用相同的代碼。

將在以下工作:

<?php 
if(strpos($_SERVER['SCRIPT_FILENAME'],$_SERVER['DOCUMENT_ROOT'])===false) { 
     // for reseller accounts 
     $path = WHATEVER_THE_RESELLER_PATH_IS; 
    } 
    else { 
     // for shared hosting accounts 
     $path = dirname($_SERVER["DOCUMENT_ROOT"]).'/'; 
    } 
include($path.'stats.php'); 
?> 

我得到了上述 「如果」 從這裏開始:PHP strange DOCUMENT_ROOT

回答

0

dirname(__FILE__);將指向執行此語句的文件的目錄。如果你知道它在哪裏,你可以這樣找到你的文檔根目錄。

0

我不會構建應用程序依賴於$_SERVER['DOCUMENT_ROOT']始終與您的Web根具有一致的關係。你的應用程序應該鬆散地耦合到他們的主機環境:他們應該儘可能少地瞭解它,以便減少在環境之間移動的問題。

例如,WordPress的使用ABSPATH不變的絕對路徑存儲到WordPress的目錄:

文件:/example/hosting/env/public_html/blog/wp-config.php

將有一行代碼:

define('ABSPATH', dirname(__FILE__) . '/'); 

的WordPress知道它的所有文件都是相對於保存爲wp-config.php的目錄而言的,因此它構建了所有相關的文件路徑。的代碼從向下的下一行是:

require_once(ABSPATH . 'wp-settings.php'); 

ABSPATH之後被定義,它被用作用於WordPress的其餘部分的基礎的文件路徑。

+0

嗨沙德,謝謝你。原諒我,我是這種事情的初學者。 – 2012-02-21 13:07:48

+0

所以,你說我應該把我的路徑設置爲'$ path = dirname(__ FILE__)。 '/';'?這對共享主機不起作用。因此,爲什麼我選擇使用'$ path = dirname($ _ SERVER [「DOCUMENT_ROOT」])。'/';'在共享主機上工作正常。你是說我應該使用'$ path = define('APP_ROOT',dirname(__ FILE__)。'/');'這可以工作,不僅適用於共享主機,而且適用於任何主機?對不起,我很困惑。我在我的Headway框架主題(wordpress)中使用我的代碼。 – 2012-02-21 13:19:18

+0

@PhilDean回答更新,讓我知道如果這回答你的問題 – Shad 2012-02-21 17:20:03