2013-07-09 53 views
1

我的PHP線tommyburn.co.uk/westancroft/index.php:PHP包括使用服務器的用戶名,而不是域名

$cwd = $_SERVER['HTTP_HOST']; 
    echo $cwd; 
    $path = $cwd."/westancroft/Pages/Main/Main.php"; 
    include_once($path); 

將返回:

tommyburn.co.uk 警告:include_once(tommyburn.co.uk/westancroft/Pages/Main/Main.php)[function.include-once]:未能打開流:在/ home/tommybu1/public_html/westancroft/index中沒有這樣的文件或目錄。 php on line 6

爲什麼它試圖在用戶名處找到它,而不是在域名? 我該如何解決這個問題? 非常感謝 Tommy

回答

1

include_once需要系統文件路徑,而不是你所擁有的網址。

如果你想在當前工作目錄,使用getcwd

如果你需要一個絕對URL,使用dirname(__FILE__)讓你在哪裏此刻的文件,並從那裏你的工作方式。

+0

我想使用絕對URL,但不是從我的位置開始,因爲包含的文件位於另一個包含文件中,所以當前位置不同。 – Tommy

+1

@Tommy研究並使用'dirname(__ FILE __)',該URL永遠不會改變! –

+0

好的,但第6行中的/home/tommybu1/public_html/westancroft/index.php中沒有這樣的文件或目錄意味着它正在當前目錄中查找它,而不是從根目錄中查找它。 – Tommy

0

$cwd大概應該是__DIR__dirname(__FILE__)

$_SERVER['HTTP_HOST']是從當前請求的主機,即:域...這是你的情況無效。

+0

雖然我想使用該域名。因爲我得到的絕對路徑 – Tommy

+0

你需要絕對'SYSTEM'路徑,而不是'HTTP'路徑... –

0

以下是否有效?

$cwd = $_SERVER['DOCUMENT_ROOT']; 
+0

這並不能提供問題的答案。要批評或要求作者澄清,在他們的帖子下留下評論 - 你總是可以評論你自己的帖子,一旦你有足夠的[聲譽](http://stackoverflow.com/help/whats-reputation),你會能夠[評論任何帖子](http://stackoverflow.com/help/privileges/comment)。 – skuntsel

+0

@skuntsel - 我同意這可能是一個評論,但你需要代表評論和新用戶不能評論其他的帖子。請參閱http://stackoverflow.com/help/privileges – McNab

相關問題