遇到问题 - $ _SERVER ['SERVER_NAME']

时间:2012-02-22 00:20:03

标签: php include

我知道我做了一些愚蠢而且可能很明显的事情,但我不确定是什么。在我的header.php我有:

define('ABSPATH', $_SERVER['SERVER_NAME']);
require_once(ABSPATH . "/config.php");

使用它会产生以下错误:

Warning: require_once(localhost/config.php): failed to open stream: 
No such file or directory in C:\wamp\www\inc\header.php on line 4 
Call Stack: 0.0002 684176 1. {main}() C:\wamp\www\index.php:0 0.0003 
696152 2. require_once('C:\wamp\www\inc\header.php') C:\wamp\www\index.php:2 
Fatal error: require_once(): Failed opening required 'localhost/config.php' (include_path='.;C:\php\pear') in C:\wamp\www\inc\header.php on line 4 Call Stack: 
0.0002 684176 1. {main}() C:\wamp\www\index.php:0 0.0003 696152 2. require_once('C:\wamp\www\inc\header.php') C:\wamp\www\index.php:2

但是,如果我直接导​​航到localhost/config.php(目前,它只是一个回复句子的简单1行文件)它会起作用。

我做错了什么?

4 个答案:

答案 0 :(得分:3)

$_SERVER['DOCUMENT_ROOT']应该做的伎俩

答案 1 :(得分:2)

include以及与从服务器上看到的文件一起使用的任何其他内容使用文件系统路径C:\foo\bar是文件系统路径。 localhost不是,localhost是从网络上看到的URL的主机名。文件localhost/config.php在被视为网络上的URL时有效。本地系统上的同一文件有一个类似C:\wamp\www\config.php的路径,这是您需要用于require_once的路径。

答案 2 :(得分:0)

你确定你不打算在你的Windows系统上使用反斜杠吗?

此外,请确保该文件位于您的网络根目录中的localhost文件夹

答案 3 :(得分:0)

尝试以下:

define('ABSPATH', $_SERVER['DOCUMENT_ROOT']);
require_once(ABSPATH . "/config.php");