2014-07-15 113 views
1

我已经去了这两个主题:为PHP相对路径需要文件

,不能让我的脚本工作,没有提出的方法正在工作,或者我做错了什么。

反正这是我的问题的出现位置:

Root/         //this is root location for server 
APP/         //this is root location for script 
Root/APP/core/init.php     //this is where I include classes and functions from 
Root/APP/classes/some_class.php   //this is where all classes are 
Root/APP/functions/some_function.php //this is where all functions are 

所以很明显,我需要包括init.php无所不在,所以我在这样每个文件所做的:

require_once 'core/init.php'; 

这是工作,直到我有决定创建一个这样的管理文件的位置:

Root/APP/Admin/some_admin_file.php 

当我包括初始化这样:

require_once '../core/init.php'; 

脚本未能打开功能,没有这样的文件在APP/Core/文件夹 所以我用DIR方法上面甚至比古怪的事情话题提出发生,错误:

no such file in APP/Core/classes/Admin/

那是什么? :d我迷路了这一点,可能有人扶了一下;)

+0

检查字母大小写,是否在这样的大写字母中:APP/Core /或APP/core /,其中之一是错误的 – Ayub

回答

2

包括路径是相对于当前的工作目录,可以使用getcwd()进行检查;当你的项目变得更大时,这可能成为许多问题的根源。

为了使包括路径更加稳定,应该使用__DIR____FILE__魔术常量;例如,你的具体情况:

require_once dirname(__DIR__) . '/core/init.php'; 

dirname(__DIR__)表达实际上是这是当前正在运行的脚本的父目录。

顺便说一句,__DIR__也可以写成dirname(__FILE__)

+0

如果我这样做了'require_once dirname(__ DIR__)。 “/core/init.php”;'在管理文件夹管理文件,我得到这个错误:'警告:require_once(功能/ my_function.php)一次function.require]:未能打开流:没有这样的文件或目录在/ APP /核心/ init.php'因此它就像试图从核心文件夹中打开功能/功能 – Mevia

+0

@PatrickMevia是,嗯,这只是意味着问题必须被固定在那里太:) –

+0

这actualy解决了这个问题,谢谢队友:) – Mevia