我需要在 php 中包含一个文件,所以我这样做
$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):无法打开流:第 62 行的 /Users/user/Sites/site/res/pdf/rechnung.php 中没有此类文件或目录
警告:include_once( ): 在第 62 行的 /Users/user/Sites/site/res/pdf/rechnung.php 中打开 '../res/proc/check_sprache.php' 以包含 (include_path='.:') 失败
所以我改变了包含路径:
set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__DIR__) . DIRECTORY_SEPARATOR);
再试一次,但 PHP 输出:
警告:include_once(../res/proc/check_sprache.php):无法打开流:第 62 行的 /Users/user/Sites/site/res/pdf/rechnung.php 中没有此类文件或目录
警告:include_once( ): 在 /Users/user/Sites/site/res/ 中打开 '../res/proc/check_sprache.php' 以包含 (include_path='.::/Users/user/Sites/site/res/') 失败pdf/rechnung.php 在第 62 行
但如果我这样做
include_once(dirname(__DIR__). DIRECTORY_SEPARATOR . $pfadweb_proc . '/check_sprache.php');
有用。但这不是解决方案,因为包含的文件包含更多具有相对路径的文件,因此也找不到它们。
所以要么我误解了 PHP 包含路径,要么它只是在欺骗我。
有人可以帮忙吗?