2012-06-01 81 views
0

我一直在試圖研究什麼是更好的使用,以包括網站的重複部分 - PHP包括功能或庫(在Dreamweaver中提供)。php包含vs庫;正確的路徑

或者也許還有其他 - 更好的方法來實現相同的結果?

此刻我使用php include和絕對路徑。我從服務器上下載了該網站,但似乎服務器上的路徑在我的本地主機上不起作用。 爲了使它們在兩臺服務器上工作而不必重新編寫代碼,寫入路徑的正確和最佳方式是什麼?

感謝

+1

我不知道Dreamweaver庫的功能是什麼,但是如果它執行include()代碼部分以外的任何操作,它就會出錯:)使用includes是一種很好的方式,如果包含文件成長,也許看看[OOP和自動加載。](http://php.net/manual/en/language.oop5.autoload.php) –

回答

0

因爲夢想韋弗使用庫,這可能是錯誤的相對路徑;)

如果您想確保僅在您使用require_once代替時才包含代碼。

嘗試相對路徑,而不是絕對

0

也是一種簡單的方法來解決這個問題,從根目錄中定義一個常數,通常在您的index.php文件。

/**Path Environment**/ 
$root=pathinfo($_SERVER['SCRIPT_FILENAME']); 
define ('BASE_FOLDER', basename($root['dirname'])); 
define ('SITE_ROOT', realpath(dirname(__FILE__))); 
define ('SITE_URL', 'http://'.$_SERVER['HTTP_HOST'].'/'.BASE_FOLDER); 

然後你就可以使用,SITE_URLSITE_ROOT整個腳本知道你的Web根其正確的路徑。

所以你的舊包括像:

include('/srv/www/somesite.com/public_html/somefile.php');

和新的包括Windows上的路徑將發生相應的變化進行開發時,會像include(SITE_ROOT.'/somefile.php');然後。

0

include_path = ".:/your/absolute/path" 

在php.ini中,無論是服務器環境和本地主機。 然後,您可以在代碼的任何位置訪問包含路徑文件。