Php 与-$服务器[';服务器名称';]有关的问题

Php 与-$服务器[';服务器名称';]有关的问题,php,include,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:\

我知道我在做一些愚蠢的事情,可能是显而易见的,但我不确定是什么。在我的
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
(目前,它只是一个简单的回音句子的单行文件),它就可以工作了


我做错了什么?

你确定你不是有意在Windows系统上使用反斜杠吗


另外,请确保文件位于web根目录下的
localhost
文件夹中。

您确定您的Windows系统上没有使用反斜杠吗


此外,请确保文件位于web根目录下的
localhost
文件夹中。

$\u服务器['DOCUMENT\u root']
应执行此操作。

$\u服务器['DOCUMENT\u root']
应执行此操作,包括从服务器上看到的与文件一起工作的任何其他操作都使用文件系统路径
C:\foo\bar
是一个文件系统路径
localhost
不是,
localhost
是从网络上看到的URL的主机名。当将文件
localhost/config.php
视为网络上的URL时,它是有效的。本地系统上的同一个文件有一个类似于
C:\wamp\www\config.php
的路径,这就是您需要使用
一次
它的路径。

包括
s以及从服务器上看到的与文件一起使用的任何其他路径
C:\foo\bar
是一个文件系统路径
localhost
不是,
localhost
是从网络上看到的URL的主机名。当将文件
localhost/config.php
视为网络上的URL时,它是有效的。本地系统上的同一文件有一个类似于
C:\wamp\www\config.php
的路径,这是您需要使用
一次
来获取它的路径。

请尝试以下操作:

define('ABSPATH', $_SERVER['DOCUMENT_ROOT']);
require_once(ABSPATH . "/config.php");
请尝试以下内容:

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

+1如果您是对的,那么解释一下为什么
localhost/config.php
可以在他的浏览器中工作,但不需要。描述
URL fopen包装器
以及如何打开
require(“http://.”.ABSPATH./config.php”)
将起作用,以及为什么这是个坏主意都是好主意。这就成功了,谢谢@保尔P.R.O.-你能解释一下为什么这是个坏主意吗?我应该使用什么?最好将
require
http
一起使用,因为您所有的require/include都将通过http进行。这是不必要的,因为您的文件位于同一台服务器上,您可以直接打开它<代码>$\u服务器['DOCUMENT\u ROOT']将为您提供指向webroot的文件系统路径。从那里你可以访问config.php。你也可以使用
require(\uuu DIR\uu.'/../config.php')
+1如果你是正确的,那么解释一下为什么
localhost/config.php
可以在他的浏览器中工作,但不能与require一起工作就好了。描述
URL fopen包装器
以及如何打开
require(“http://.”.ABSPATH./config.php”)
将起作用,以及为什么这是个坏主意都是好主意。这就成功了,谢谢@保尔P.R.O.-你能解释一下为什么这是个坏主意吗?我应该使用什么?最好将
require
http
一起使用,因为您所有的require/include都将通过http进行。这是不必要的,因为您的文件位于同一台服务器上,您可以直接打开它<代码>$\u服务器['DOCUMENT\u ROOT']将为您提供指向webroot的文件系统路径。从那里您可以访问config.php。您还可以使用
require(\uuuu DIR\uuu./../config.php')