我在“PAGE A”中有测试代码:
<?php
require_once('../mysite/php/classes/eventManager.php');
$x=new EventManager();
$y=$x->loadNumbers();
?>
“eventManager.php”包含在require_once:
中<?php
require_once('../includes/dbconn.inc');
class EventManager {...}
?>
我的文件夹结构是:
mysite/php/classes folder and includes folder
如果我在浏览器中测试PAGE A,我会收到:
警告:require_once(../ includes / dbconn.inc)[function.require-once]:无法打开流:没有这样的文件或 在C:\ wamp \ www \ mysite \ php \ classes \ eventManager.php上的目录 3
<小时/> 致命错误:require_once()[function.require]:无法打开所需的'../includes/dbconn.inc'(include_path ='。; C:\ php5 \ pear')in 第3行的C:\ wamp \ www \ mysite \ php \ classes \ eventManager.php
错误在哪里?
由于 卢卡
答案 0 :(得分:16)
您需要链接到相对于包含eventManager.php
(页面A)的文件的文件
更改您的代码
require_once('../includes/dbconn.inc');
要强>
require_once('../mysite/php/includes/dbconn.inc');
答案 1 :(得分:13)
错误几乎解释了问题所在:您正在尝试包含不存在的文件。
尝试使用realpath()
对文件完整路径,并使用dirname(__FILE__)
获取当前目录:
require_once(realpath(dirname(__FILE__) . '/../includes/dbconn.inc'));
答案 2 :(得分:4)
这也适用
require_once(realpath($_SERVER["DOCUMENT_ROOT"]) .'/mysite/php/includes/dbconn.inc');
答案 3 :(得分:1)
它说文件C:\wamp\www\mysite\php\includes\dbconn.inc
不存在,所以错误是,你错过了文件。
答案 4 :(得分:1)
set_include_path(get_include_path() . $_SERVER["DOCUMENT_ROOT"] . "/mysite/php/includes/");
这也有帮助。见set_include_path()