如何定义“系统范围”常量,该常量是包含特定文件夹目录的字符串?

时间:2011-06-15 00:33:25

标签: php apache

我将所有脚本存储在服务器上的相同位置,然后使用PHP include语句进行引用。但是,如果我想要或需要更改该目录怎么办?我真的想改变每一个陈述吗?绝对不是。

我辩论的一件事是包含一个名为'scriptsdir.php'的文件,该文件将位于主目录中以便于访问。所有这个文件负责的做法是将常量'SCRIPTS_DIR'定义为该目录。这个就足够了,但是如果必须移动那个文件或发生某些事情等等,我想知道我是否可以定义一个可以访问的常量而无需手动定义它。

有没有办法在php.ini或.htaccess或任何中执行此操作?

3 个答案:

答案 0 :(得分:2)

您可以使用magic constant ...

执行此类操作
define('DOCROOT', dirname(__FILE__));

如果使用> = PHP 5.3,您只需使用__DIR__

然后你将使用...

包含你的文件
include DOCROOT . '/bootstrap.php';

答案 1 :(得分:2)

另一个选择是使用以下内容通过$_SERVER["SCRIPTS_DIR"]声明变量 .htaccess

 SetEnv SCRIPTS_DIR /var/www/project123/includes/

对于document_root下面的所有脚本都可以可靠地使用它,并且通常可以简化重定位。

答案 2 :(得分:1)

如果您要求它在所有 PHP应用程序的系统范围内,那么您可以将auto_prepend_file与您定义的文件一起使用。