我尝试包含我的文件,但出于某种原因我不能......
这是我的结构:
在index.php
上,有一个include_once('includes/php/inc.php');
。 inc.php
包含以下行:
// Required classes
require_once '../classes/cl_calendar.php';
我认为完全合法,但出于某种原因,我得到的只是这个错误:
Warning: require_once(../classes/cl_calendar.php): failed to open stream: No such file or directory in /customers/xxx/xxx/httpd.www/new/extra/php/inc.php on line 14 Fatal error: require_once(): Failed opening required '../classes/cl_calendar.php' (include_path='.:/usr/share/php') in /customers/xxx/xxx/httpd.www/new/extra/php/inc.php on line 14
是什么导致显示此错误,如何摆脱它?
答案 0 :(得分:1)
当您从另一个文件中包含一个php文件时,就像获取该文件的内容并将其放在您的初始(index.php
)文件中一样。因此,当您要求inc.php
文件中的更多文件时,它基于初始文件的路径。尝试在index.php
文件中设置基本路径,并在inc.php
文件中使用该路径。尝试
// index.php
$base = "/var/www/htdocs/";
// or something like dirname(__FILE__) if it may change
include_once($base.'includes/php/inc.php');
// inc.php
require_once($base.'classes/cl_calendar.php');
答案 1 :(得分:1)
正确的路径包括/ classes / file.php。为什么 ..?这会使你超过根目录。
原因在于,即使两个包含文件的相对关系可能不同,您也可以从索引文件中包含它,因此路径必须相对于索引文件。
答案 2 :(得分:0)
只需将此页面cl_calendar.php拖放到index.php页面,这将显示为href链接,然后只需复制完整的href路径并将其粘贴到include中。
或试试这个
require_once(/../classes/cl_calendar.php);