我需要包括在PHP文件,所以我做PHP通過set_include_path我逼瘋了
$web_proc = '../res/proc'; //variable read from config file I can't change
//in my file
include_once($web_proc . '/check_sprache.php');
和PHP輸出:
警告:include_once(../ RES的/ proc/check_sprache.php ):未能打開 流:沒有這樣的文件或目錄 /Users/user/Sites/site/res/pdf/rechnung.php on line 62
Warning: include_once():失敗打開'../res /proc/check_sprache.php'爲 夾雜物(包含路徑= ':')在 /Users/user/Sites/site/res/pdf/rechnung.php在線路62上
所以我改變包括路徑:
set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__DIR__) . DIRECTORY_SEPARATOR);
,並再次嘗試,但PHP輸出:
警告:include_once(../ RES的/ proc/check_sprache.php):未能打開 流:在 /用戶/用戶沒有這樣的文件或目錄/第62行網站/網站/ res/pdf/rechnung.php 警告: include_once():在 /Users中打開'../res/proc/check_sprache.php'爲 包含(include_path ='。::/Users/user/Sites/site/res /')失敗/user/Sites/site/res/pdf/rechnung.php在線62
但是,如果,如果我做
include_once(dirname(__DIR__). DIRECTORY_SEPARATOR . $pfadweb_proc . '/check_sprache.php');
它的工作原理。但是這不是解決方案,因爲包含的文件包含更多帶有相對路徑的文件,所以找不到它們。
因此,無論我誤解PHP包含路徑,或者它只是拖動我。
任何人都可以幫忙嗎?
PHP'include_path'僅用於未錨定的路徑(無前導'/'或'.'或'''關係)。如果您無法使用相對路徑,請使用'$ _SERVER [「DOCUMENT_ROOT」]' - 綁定路徑。 – mario
@mario no no no!爲什麼要引入像文檔根那樣的外部依賴關係?它排除了您在除Web服務器以外的任何環境下運行腳本的情況。 – Phil