我正在尝试在我的PHP文件中设置目录,并决定要使用define(K,V),但是我遇到了一个问题:
define('ROOTDIR', explode(DIRECTORY_SEPARATOR , __FILE__));
define('FORUMPATH', ROOTDIR . DIRECTORY_SEPARATOR . "forum" . DIRECTORY_SEPARATOR);
虽然 ROOTDIR 正确返回,但 FORUMPATH 不会,而是 FORUMPATH 返回
ROOTDIR/forum/
而不是
/usr/www/name/public/forum/
我真的不明白为什么,根据我对定义功能的理解,这应该有效,只要我按顺序定义键,我做错了什么?
如前所述,将结果explode(DIRECTORY_SEPARATOR , __FILE__)
到数组中。在不知道根目录下是什么意思的情况下,我无法为您提供具体的解决方案,但是例如,如果您想将其设置为执行文件的目录,则可以使用__DIR__
.
define('ROOTDIR', __DIR__));
define('FORUMPATH', ROOTDIR . DIRECTORY_SEPARATOR . "forum" . DIRECTORY_SEPARATOR);
无论如何,只需计算ROOTDIR
的字符串即可。
这应该有效:
define('ROOTDIR', str_replace(DIRECTORY_SEPARATOR .basename(__FILE__), "",__FILE__));
define('FORUMPATH', ROOTDIR . DIRECTORY_SEPARATOR . "forum" . DIRECTORY_SEPARATOR);
或者你可以像这样简单:
define('FORUMPATH', __DIR__ . DIRECTORY_SEPARATOR . "forum" . DIRECTORY_SEPARATOR);