hai。 我有没有真正奇怪的网站,现在让我烦恼。 这是简化结构

public_html
- adm
--- raport
------ raportpdf.php
--- class
------ Bonus
--------- Bonus_DAO.class.php 
------ config.php
--- raport.php
- index.php
.

所以。index.php是巨型装载机。它有线:(但我不认为他们正在衍生)

set_include_path('lib/DB' . PATH_SEPARATOR . get_include_path());
set_include_path('lib/PHPLOT' . PATH_SEPARATOR . get_include_path());
set_include_path('config' . PATH_SEPARATOR . get_include_path());
set_include_path('view' . PATH_SEPARATOR . get_include_path());
set_include_path('controller' . PATH_SEPARATOR . get_include_path());
set_include_path('model' . PATH_SEPARATOR . get_include_path());
.

内部bonus_dao.class.php是一种像

require_once('./adm/class/config.php');
.

raportpdf.php通过index.php调用 - 它会发送它的内容而没有任何错误邮件。 但是当我想访问raport.php时,我有错误:

Warning: require_once(./adm/class/config.php) [function.require-once]: failed to open stream: No such file or directory in /home/panele/domains/blahblah/public_html/adm/class/Bonus/Bonus_DAO.class.php  on line 2

Fatal error: require_once() [function.require]: Failed opening required './adm/class/config.php' (include_path='.:/usr/local/lib/php') in /home/panele/domains/blahblah/public_html/adm/class/Bonus/Bonus_DAO.class.php on line 2
.

如何解决这个问题?

有帮助吗?

解决方案

将诸如以下内容中包含的线(如下面包含在此结构中的文件)(此包含的文件必须位于根目录中,类似于Config.php或我通常使用init.php)。

define("ROOT_DIR",dirname(__FILE__));
.

然后,您正在接收错误(或在代码中的同义词,您需要()/ include()),添加root_dir。“/ path / to / file”它之前。这样做的是给root目录的绝对路径,然后您只需指定您要查找的根目录。为例,我的根目录是“/主页2 /示例”。现在,我在我包括的文件中插入此行等,并将需要行更改为此:

require_once(ROOT_DIR."/adm/class/config.php");
.

上面的行基本上转换为此(假设我使用define();在/ home2 /示例中的文件中的语句)

require_once("/home2/example/adm/class/config.php");
.

所以基本上,这是一个简单的方法来给静态路径一个动态元素,所以你不会再次遇到这个问题!

好运!
Dennis m。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top