在Windows XP系统上,我有 test.bat
C:\Path\to\php.exe -f "C:\Path\to\test.php"
我也有 test.php
require_once ($_SERVER ['DOCUMENT_ROOT'] . '/Inc/Class/Connect_DB.php');
...更多代码。
当我在“CMD模式”上执行 test.bat 时,它会返回致命错误,说它无法找到require_once文件。
同一个文件在浏览器上运行正常。它似乎无法识别bat文件中的$_SERVER
变量。 (我计划稍后通过schtasks.exe运行 test.bat 文件)
为什么不能在这里读取$_SERVER
变量?
答案 0 :(得分:2)
转储$ _SERVER并检查是否设置了文档根目录。在我的安装中,$ _SERVER可从cli获得,但DOCUMENT_ROOT键设置为空字符串。即 - > “”。
通过以下方式使用以下内容获得路径会更好:
<?php echo dirname(__FILE__);?>
//you can put this in variable,
$base_dir = dirname(__FILE__);
//append another path ..
$lib_dir = $base_dir . "/lib/";
// Notice require does not need parentheses! ;)
require_once $lib_dir . "db_connect.php";
有很多方法可以做到这一点,但这应该会给你一个想法。
快乐的编码!
答案 1 :(得分:0)
documentroot为空
使用“__DIR__”:http://php.net/manual/en/language.constants.predefined.php