2012-02-05 26 views
0

是否有一个$_SERVER['DOCUMENT_ROOT']等价物,它可以在Apache和IIS上工作而无需更改配置文件?或者,也许有一些解决方法?在Apache和IIS上使用PHP的根目录

+0

什么是你面对你能澄清这个问题,? – 2012-02-05 18:48:23

+0

问题是$ _SERVER ['DOCUMENT_ROOT']在IIS上不起作用,并且使用它不是一个好主意。此外,我正在寻找一种可以在较低版本的PHP上工作的解决方案(低于PHP 5)。 – acoder 2012-02-05 18:56:42

+0

也许你可以使用PHP函数'getcwd();'(PHP4/PHP5)和一些逻辑来获得你所需要的? – nickb 2012-02-05 19:00:18

回答

1

对于IIS

if(empty($_SERVER['DOCUMENT_ROOT']) && !empty($_SERVER['SCRIPT_FILENAME'])) { 
    $_SERVER['DOCUMENT_ROOT'] = str_replace('\\', '/', substr($_SERVER['SCRIPT_FILENAME'], 0, 0 - strlen($_SERVER['PHP_SELF']))); 
} 
if(empty($_SERVER['DOCUMENT_ROOT']) && !empty($_SERVER['PATH_TRANSLATED'])) { 
    $_SERVER['DOCUMENT_ROOT'] = str_replace('\\', '/', substr(str_replace('\\\\', '\\', $_SERVER['PATH_TRANSLATED']), 0, 0 - strlen($_SERVER['PHP_SELF']))); 
}