我正在尝试对 php 包含使用绝对路径。
现在我正在尝试这样做:
include($_SERVER['DOCUMENT_ROOT'].'/sitefolder/apis/db.php');
但它不起作用,因为我的站点没有指向根文件夹,所以我需要添加一个 /sitefolder。
有没有办法绕过这个产生一个绝对 URL?或者有没有办法允许绝对 URL 包括?
我正在尝试对 php 包含使用绝对路径。
现在我正在尝试这样做:
include($_SERVER['DOCUMENT_ROOT'].'/sitefolder/apis/db.php');
但它不起作用,因为我的站点没有指向根文件夹,所以我需要添加一个 /sitefolder。
有没有办法绕过这个产生一个绝对 URL?或者有没有办法允许绝对 URL 包括?
制作一个initialize.php。
并定义您的站点根目录。
包括您的包含文件,例如 config.php、db.php。
并且只将 initialize.php 包含到您的文件中。
defined('DS') ? null : define('DS', '/');
defined('SITE_ROOT') ? null : define('SITE_ROOT',$_SERVER['DOCUMENT_ROOT']);
defined('LIB_PATH') ? null : define('LIB_PATH', SITE_ROOT.DS.'includes');
require_once(LIB_PATH.DS.'functions.php');
require_once(LIB_PATH.DS.'session.php');
require_once(LIB_PATH.DS.'database.php');
我倾向于使用以下技术来包含文件。
include rtrim(dirname(__FILE__), '/\\') . DIRECTORY_SEPARATOR . 'my_file.php' ;
如果它在同一个目录中,或者相对于同一个目录,你可以使用类似的东西(为了简单起见,我排除了 rtrim 函数)
include dirname(__FILE__) . '/file.php';
include realpath(dirname(__FILE__) . '/../dir') . '/file.php';
include realpath(dirname(__FILE__) . '/../dir/file.php');
定义常数也做得很好。
define('BASEDIR', dirname(__FILE__));
define('LIBDIR', BASEDIR . '/lib');