我一直在試圖研究什麼是更好的使用,以包括網站的重複部分 - PHP包括功能或庫(在Dreamweaver中提供)。php包含vs庫;正確的路徑
或者也許還有其他 - 更好的方法來實現相同的結果?
此刻我使用php include和絕對路徑。我從服務器上下載了該網站,但似乎服務器上的路徑在我的本地主機上不起作用。 爲了使它們在兩臺服務器上工作而不必重新編寫代碼,寫入路徑的正確和最佳方式是什麼?
感謝
我一直在試圖研究什麼是更好的使用,以包括網站的重複部分 - PHP包括功能或庫(在Dreamweaver中提供)。php包含vs庫;正確的路徑
或者也許還有其他 - 更好的方法來實現相同的結果?
此刻我使用php include和絕對路徑。我從服務器上下載了該網站,但似乎服務器上的路徑在我的本地主機上不起作用。 爲了使它們在兩臺服務器上工作而不必重新編寫代碼,寫入路徑的正確和最佳方式是什麼?
感謝
您可以在腳本中通過set_include_path()命令開始打電話,並指定到你的庫
因爲夢想韋弗使用庫,這可能是錯誤的相對路徑;)
如果您想確保僅在您使用require_once
代替時才包含代碼。
嘗試相對路徑,而不是絕對
也是一種簡單的方法來解決這個問題,從根目錄中定義一個常數,通常在您的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_URL
和SITE_ROOT
整個腳本知道你的Web根其正確的路徑。
所以你的舊包括像:
include('/srv/www/somesite.com/public_html/somefile.php');
和新的包括Windows上的路徑將發生相應的變化進行開發時,會像include(SITE_ROOT.'/somefile.php');
然後。
將
include_path = ".:/your/absolute/path"
在php.ini中,無論是服務器環境和本地主機。 然後,您可以在代碼的任何位置訪問包含路徑文件。
我不知道Dreamweaver庫的功能是什麼,但是如果它執行include()代碼部分以外的任何操作,它就會出錯:)使用includes是一種很好的方式,如果包含文件成長,也許看看[OOP和自動加載。](http://php.net/manual/en/language.oop5.autoload.php) –