2011-07-25 139 views
-2
<?php 
    $path = "http://" . $_SERVER['HTTP_HOST']; 
?> 

<?php include $path . 'library/content/header.php'; ?> 

我似乎無法得到此工作。語法有錯誤嗎?PHP文件的問題包括

回答

3

您需要包含相對於文件系統的路徑,而不是URL。

例如:$path = dirname(__FILE__).'/';

補充閱讀:

+0

請與downvote一起發表評論。 – chelmertz

-2

不能包括遠程腳本。您只允許包含本地php文件,它位於php文件的路徑範圍內,您正在編寫include文件。

+0

你可以,如果你已經配置它,http://php.net/manual/en/function.include.php – Darm

+0

http://php.net/filesystem.configuration#ini.allow-url-include – KingCrunch

+0

Cmon,guys ,downvote爲嚴格的答案? 「這與嚴格地說與包含文件並使其繼承父文件的變量作用域不同;該腳本實際上正在遠程服務器上運行,並且結果將被包含到本地腳本中。」這不是「包含」,因爲「包含」是包含PHP腳本而不是HTML文檔的必要條件。該死的你。爲了「包含遠程html」,還有其他一些PHP函數,它不需要修改PHP INI。 – Deele

0

當你需要的PHP文件,你得到的文件的解析輸出,絕對HTTP路徑(或與此有關的任何其他動態文件),這樣你實際上包括文件的輸出,而不是源代碼。你可以通過配置allow_url_include來避免這種情況,但這不是最好的做法。

爲了讓您的代碼正常工作,您應該在服務器上包含文件的相對或絕對路徑。我還建議使用include_once或require_once。

<?php 
require_once('head.php'); // if its on the same folder 

require_once('/var/www/head.php'); //full path to file on server 

require_once(dirname(__FILE__).'/../head.php'); // relative path to file using the path of the current open file 
?> 

希望這會有所幫助,
Shai。

0

首先:你應該從來沒有包含遠程文件。它很明顯,你想包括一個本地文件,因此強烈建議使用本地文件路徑。

include '/path/to/file.php'; 

如果你真的包括遠程文件時,請記住,這通常要求在「HTTP:// are executed by the webserver. This means, if you are trying to include a remote file via HTTP:// example.com/script.php`你通常只接收所生成的內容,而不是php的源代碼。