【发布时间】:2017-01-04 21:51:20
【问题描述】:
我正在运行 wamp64 以在本地托管我的网站(这是一个用于测试是否有帮助的 vbulletin 论坛)。
我正在尝试创建一个位于子文件夹而不是网站根目录中的新网页,但是我遇到了错误。 我要创建的网页是 addons 文件夹内的 index.php 网页。
我的文件结构是:
C:
-wamp64
--www(网站根目录)
--global.php
---插件
----index.php
----图片
---包括
----config.php
我用于插件的代码 - index.php 是:
<?php
error_reporting(E_ALL & ~E_NOTICE);
define('NO_REGISTER_GLOBALS', 1);
define('THIS_SCRIPT', 'addons');
$phrasegroups = array();
$specialtemplates = array();
$globaltemplates = array(
'ADDONSTESTPAGE'
);
$actiontemplates = array();
require_once('/../global.php');
eval('$navbar = "' . fetch_template('navbar') . '";');
eval('print_output("' . fetch_template('ADDONSTESTPAGE') . '");');
?>
当我在 www 文件夹中创建一个新页面时,它运行良好(除了我使用 require_once('/global.php'); 而不是 require_once('/../global.php');。
但是,因为这是在一个子文件夹中,所以我遇到了以下错误,因为 global.php 需要的文件一旦在它们内部有自己的 require_once 函数,并且这些文件在它们内部有自己的 require_once 函数,等等。
这是我现在转到 localhost/addons/ 时遇到的错误:
警告:require_once(C:\wamp64\www\addons/includes/init.php): 失败 打开流:C:\wamp64\www\global.php 中没有这样的文件或目录 第 20 行
致命错误:require_once():需要打开失败 'C:\wamp64\www\addons/includes/init.php' (include_path='.;C:\php\pear') 在 C:\wamp64\www\global.php 第 20 行
这里是 global.php 的第 13-20 行:
// identify where we are
define('VB_AREA', 'Forum');
define('CWD', (($getcwd = getcwd()) ? $getcwd : '.'));
// #############################################################################
// Start initialisation
require_once(CWD . '/includes/init.php');
如何在不弄乱使用 global.php 文件的其他文件的情况下解决这个问题?我听说 realpath 是一个常见的解决方案,但我是 php 新手,不完全确定如何在这种情况下使用它。
感谢所有帮助,非常感谢,如果您需要更多信息,请随时询问!
好的,我可以通过将 require_once(CWD . '/includes/init.php'); 更改为 require_once(__DIR__ . '/includes/init.php'); 来解决该错误。
现在我收到此错误:
警告:require_once(C:\wamp64\www\addons/includes/class_core.php):无法打开流:第 51 行的 C:\wamp64\www\includes\init.php 中没有这样的文件或目录
致命错误:require_once():在 C:\wamp64\www 中打开所需的 'C:\wamp64\www\addons/includes/class_core.php' (include_path='.;C:\php\pear') 失败\includes\init.php 第 51 行
Class_core.php 存在于包含文件夹中。
init.php的第51行是:
require_once(CWD . '/includes/class_core.php');
我尝试将其更改为require_once(__DIR__ . '/includes/class_core.php');,但它破坏了整个网站。
【问题讨论】:
-
在帖子中添加了更新
-
来自
includes/init.php,只需使用__DIR__ . '/class_core.php'
标签: php require-once