2014-07-15 140 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