我有以下包含文件..
require_once ("config.php");
require_once ("functions.php");
require_once ("session.php");
我想为包含文件定义绝对路径。我尝试过以下代码而没有运气..
你可以帮忙定义一个合适的绝对路径,以便require_once按预期进行。
defined('DS') ? null : define('DS',DIRECTORY_SEPARATOR);
defined('SITE_ROOT') ? null: define('SITE_ROOT',DS.'PHP_Files'. DS . 'phpsandbox'. DS.'my_mat'. DS.'my_test');
defined('LIB_PATH')?null:define('LIB_PATH',SITE_ROOT.DS.'includes');
require_once(LIB_PATH.DS."config.php");
require_once(LIB_PATH.DS."functions.php");
require_once(LIB_PATH.DS."session.php");
我系统中的这3个包含文件存储在J:\ PHP_Files \ phpsandbox \ my_mat \ my_test \ includes中。
提前致谢!
答案 0 :(得分:1)
好的,所以我认为你要找的是实际的系统文件路径。为此,你可以回应
dirname( __FILE__ );
您可以在任何所需的文件中执行此操作,它将显示相对于您的文件的系统文件路径。对我来说就是这样的:
/home2/myusername/public_html/project_name/includes/config.php
所以如果你对“project_name”文件夹感兴趣,你应该有这样的东西:
defined("SITE_ROOT") ? null : define("SITE_ROOT", DS . "home2" . DS . "myusername" . DS . "public_html" . DS . "project_name" );
然后,如果您正在寻找将作为您的图书馆的“包含”文件夹,您应该具有以下内容:
defined("LIB_PATH") ? null : define("LIB_PATH", SITE_ROOT . DS . "includes" );
希望这会有所帮助。我有完全相同的问题,这对我有用。
干杯,Mihai Popa
答案 1 :(得分:0)
您需要realpath功能。此外,您可以获取get_included_files包含的所有文件,这些文件将返回您在调用函数时所包含的文件的绝对路径数组。
defined('DS') or define('DS',DIRECTORY_SEPARATOR);
$disk_label = '';
if (PHP_OS == 'WINNT') {
if (FALSE !== ($pos = strpos(__FILE__, ':'))) {
$disk_label = substr(__FILE__, 0,$pos+1);
}
}
defined('SITE_ROOT') or define('SITE_ROOT', $disk_label.DS.'PHP_Files'. DS . 'phpsandbox'. DS.'my_mat'. DS.'my_test');
defined('LIB_PATH') or define('LIB_PATH',SITE_ROOT.DS.'includes');
require_once(LIB_PATH.DS."config.php");
require_once(LIB_PATH.DS."functions.php");
require_once(LIB_PATH.DS."session.php");
答案 2 :(得分:0)
尝试在包含路径中包含您的LIB_PATH。
set_include_path(LIB_PATH . DS . PATH_SEPARATOR . get_include_path());
答案 3 :(得分:0)
require_once(dirname(__FILE__).DS."config.php");
require_once(dirname(__FILE__).DS."functions.php");
require_once(dirname(__FILE__).DS."session.php");
检查出来,我认为这很好