这是我的目录:
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 中的任何内容?我只是写了一些插件,我不想改变任何属于开发人员的东西。
答案 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.php
是global.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');
非常感谢您试图帮助我,我真的很感激!