我知道我做了一些愚蠢而且可能很明显的事情,但我不确定是什么。在我的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行文件)它会起作用。
我做错了什么?
答案 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");