使用php的方法包括绝对路径?

时间:2012-05-25 21:50:15

标签: php

我正在尝试使用php include的绝对路径。

现在我正试图这样做:

include($_SERVER['DOCUMENT_ROOT'].'/sitefolder/apis/db.php');

但它不起作用,因为我的网站没有指向根文件夹,所以我需要添加一个/ sitefolder。

有没有办法绕过这个产生一个绝对的URL?或者有没有办法允许绝对URL包括?

2 个答案:

答案 0 :(得分:1)

制作一个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');

答案 1 :(得分:0)

我倾向于使用以下技术来包含文件。

   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');