在包含的文件中包含文件

时间:2014-01-06 08:07:19

标签: php

这是我的目录:

global.php
includes
    class_bootstrap.php
resourcemanager
    index.php

要将global.php包含在index.php文件中,我有:

require_once('../global.php');

在global.php中,我有:

require_once(./includes/class_bootstrap.php);

当运行index.php时,我收到了这条消息:

  

警告:require_once(./ includes / class_bootstrap.php):无法打开流:第15行的C:\ xampp \ htdocs \ yurivn \ global.php中没有此类文件或目录

     

致命错误:require_once():在C:\ xampp \ htdocs \ yurivn \ global中打开所需的'./includes/class_bootstrap.php'(include_path ='。; C:\ xampp \ php \ PEAR')失败。第15行的PHP

我想知道PHP是否在错误的目录中搜索文件class_bootstrap.php,它可能会搜索“resourcemanager / includes / class_bootstrap.php”而不是“includes / class_bootstrap.php” 因为如果我将 index.php 放到 global.php 的同一目录中,它就能完美运行。

有没有让 index.php 在resourcemanager目录中工作而不改变 global.php class_bootstrap.php 中的任何内容?我只是写了一些插件,我不想改变任何属于开发人员的东西。

7 个答案:

答案 0 :(得分:3)

您真正想做的事情(为了让将来的生活更轻松)是使用定义文件

只要在代码运行之前定义了这一点,那么一切都会很好 - 最简单的方法是创建一个definitions.php文件,然后将其包含在您使用的每个页面的顶部。

define("URL", "http://yoursite.com/"); //note the trailing / to make life easier.

然后在你的包含上使用

require_once(URL . 'file.php');

这样在本地机器上转移到新主机只需将定义或URL更改为

define("URL", "http://siteontheinternet.com/"); 

你很高兴去!

答案 1 :(得分:0)

如果你写完像

这样的完整路径,它就有效
include('D:/wamp/www/ajax/a.php');

答案 2 :(得分:0)

index.php中,尝试使用dirname(__FILE__)。所以它应该是:

require_once dirname(__FILE__) . 'global.php';

修改

由于index.phpglobal.php的1级​​,因此您必须添加/../,因此它应该是:

require_once dirname(__FILE__) . '/../global.php';

答案 3 :(得分:0)

试试这个

require_once('../includes/class_bootstrap.php');

答案 4 :(得分:0)

最简单的方法是在索引或配置中设置ROOT_DIR,然后使用它来解析所有其他包含路径。

答案 5 :(得分:0)

您可以尝试以下内容:

<?php

require_once __DIR__ . '/../global.php';

global.php档案:

require_once __DIR__ . '/includes/class_bootstrap.php';

答案 6 :(得分:0)

我得到了解决方案!只需在添加之前添加:

chdir('./../');

并包含global.php,就像它们是同一个目录一样:

require_once('./global.php');

非常感谢您试图帮助我,我真的很感激!