我试图在我的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/
我不明白为什么,根据我对定义功能的理解,这应该有效,只要我按顺序定义键,我做错了什么?
答案 0 :(得分:1)
如前所述,explode(DIRECTORY_SEPARATOR , __FILE__)
会产生一个数组。我不能在不知道根目录下你的意思给你一个具体的解决方案,但是例如,如果你想将它设置为执行文件的目录,你可以使用__DIR__
。
define('ROOTDIR', __DIR__));
define('FORUMPATH', ROOTDIR . DIRECTORY_SEPARATOR . "forum" . DIRECTORY_SEPARATOR);
无论如何,只需计算ROOTDIR
的字符串。
答案 1 :(得分:-3)
这应该有效:
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);