PHP $_SERVER['DOCUMENT_ROOT'] 问题

php中文网
发布: 2016-06-23 14:23:41
原创
3212人浏览过

$_SERVER['DOCUMENT_ROOT'] 值为空,但是在phpinfo()测试页面中却有实际数据,这是我的程序哪里有问题?还是配置上的问题啊?
/*
测试程序
调用Base_Info.php
*/
print_r($_SERVER);
$SYSTEM_ROOT_PATH = $_SERVER['DOCUMENT_ROOT'];
#echo $_SERVER['DOCUMENT_ROOT']." ";
echo $SYSTEM_ROOT_PATH;
/*
include("$SYSTEM_ROOT_PATHLibBase_Info.php");

$class = new Base_Info();

$S_Info = $class->System_Info();
foreach ($key as $value){
echo "$key========$value"." ";
}
*/

$_SERVER数组输出
 [ALLUSERSPROFILE] => C:ProgramData
 [ANT_HOME] => D:hadooppache-ant-1.9.2
 [APPDATA] => C:UsersyjnAppDataRoaming
 [CLASSPATH] => ,;D:hadoopJava/lib/dt.jar;D:hadoopJava/lib/tools.jar
 [CommonProgramFiles] => C:Program Files (x86)Common Files
 [CommonProgramFiles(x86)] => C:Program Files (x86)Common Files
 [CommonProgramW6432] => C:Program FilesCommon Files
 [COMPUTERNAME] => YJN-PC
 [ComSpec] => C:Windowssystem32cmd.exe
 [FP_NO_HOST_CHECK] => NO
 [HOMEDRIVE] => C:
 [HOMEPATH] => Usersyjn
 [JAVA_HOME] => D:hadoopJava
 [LOCALAPPDATA] => C:UsersyjnAppDataLocal
 [LOGONSERVER] => \YJN-PC
 [NUMBER_OF_PROCESSORS] => 2
 [OS] => Windows_NT
 [Path] => C:Perl64sitein;C:Perl64in;C:Windowssystem32;C:Windows;
ndowsSystem32Wbem;C:WindowsSystem32WindowsPowerShell 1.0;D:hadoopJ
in;D:hadoopJava/jre/bin;D:hadooppache-ant-1.9.2in;D:php5;D:php5ex
 [PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
 [PROCESSOR_ARCHITECTURE] => x86
 [PROCESSOR_ARCHITEW6432] => AMD64
 [PROCESSOR_IDENTIFIER] => Intel64 Family 6 Model 23 Stepping 10, GenuineIn

 [PROCESSOR_LEVEL] => 6
 [PROCESSOR_REVISION] => 170a
 [ProgramData] => C:ProgramData
 [ProgramFiles] => C:Program Files (x86)
 [ProgramFiles(x86)] => C:Program Files (x86)
 [ProgramW6432] => C:Program Files
 [PROMPT] => $P$G
 [PSModulePath] => C:Windowssystem32WindowsPowerShell 1.0Modules
 [PUBLIC] => C:UsersPublic
 [SESSIONNAME] => Console
 [SystemDrive] => C:
 [SystemRoot] => C:Windows
 [TEMP] => C:UsersyjnAppDataLocalTemp
 [TMP] => C:UsersyjnAppDataLocalTemp
 [USERDOMAIN] => yjn-PC
 [USERNAME] => yjn
 [USERPROFILE] => C:Usersyjn
 [windir] => C:Windows
 [windows_tracing_flags] => 3
 [windows_tracing_logfile] => C:BVTBinTestsinstallpackagecsilogfile.log
 [PHP_SELF] => test.php
 [SCRIPT_NAME] => test.php
 [SCRIPT_FILENAME] => test.php
 [PATH_TRANSLATED] => test.php
 [DOCUMENT_ROOT] =>
 [REQUEST_TIME] => 1381282125
 [argv] => Array
     (
         [0] => test.php
     )

 [argc] => 1




回复讨论(解决方案)

$_SERVER['DOCUMENT_ROOT'] 需要在服务器配置中指定,你确认phpinfo有这个值么?

你$_SERVER数组输出['DOCUMENT_ROOT']很明显是空的

确实在phpinfo中能到得到该值。很奇怪,不知道代码中是否有问题
httpd.conf中的设置
DocumentRoot "D:Apachehtdocs"


_SERVER["DOCUMENT_ROOT"] D:/Apache/htdocs

你$_SERVER数组输出['DOCUMENT_ROOT']很明显是空的
我就想知道为什么是空?

echo $_SERVER["DOCUMENT_ROOT"];

个人觉得不应该纠结于 $_SERVER['DOCUMENT_ROOT']
这个变量并不是通行于各个服务器,说不准换了一台服务器就要查错并重写代码了
建议用 __FILE__ 或 __DIR__

如果确实需要知道所以然,就去查资料吧,据闻虚拟机用这个变量也是有问题,没有环境实测

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号