[英]How to include a script from nested folders?
我有這個文件夾結構:
-out
-DBconnection.php
-root
-application
-contact.php
這也是contact.php
的內容:
function index(){
<form action="http://example.com/localhost/application/contact/check">
// some code here ...
</form>
}
function check(){
// I need to include DBconnection.php script here
require_once( /* what path */ );
...
}
但是此路徑不起作用: ../../out/DBconnection.php
。
注意:上面的路徑也適用於index()
函數。 但是index()
在我的路由系統中以及當我打開此路徑時被定義為默認值
http://example.com/contact
/* which is the same as
http://example.com/contact/index
*/
然后將執行index
。 那么如何將DBconnection.php
包含到check()
函數中呢?
在這種情況下,我要做的是在根文件的最頂部添加以下幾行:
define( 'DS', DIRECTORY_SEPARATOR );
define( 'ROOT', dirname(dirname(dirname(__FILE__))) ); // Root is ../../
當我包含一個文件時,我使用這些常量來獲取路徑(該路徑始終相對於rood文檔):
require ROOT . DS . "out" . DS . "DBconnection.php";
嘗試使用:../../out/DBconnection.php
您必須具有以下結構:
DIR1
out
DBconnection.php
root
application
contact.php
因此,從contact.php
內可以使用DBconnection.php
,您必須向上3個目錄。 正確的方法是: ../../out/DBconnection.php
。
這實際上取決於include
路徑中的內容以及應用程序的引導位置。
如果您正在使用相對路徑(使用../
,則是相對路徑),則需要了解它只是因為它看起來與您正在處理的文件有關,而可能並非如此。 它與您“輸入”的文件有關。
為了解決這個問題,您應該可以使用類似
include_once(dirname(__FILE__) . '/../../out/DBConnection.php');
但是 ,您真正應該做的是將應用程序路徑放入包含路徑。 這樣,您將能夠執行以下操作:
include_once('out/DBConnection.php');
您將可以在應用程序中的任何位置執行此操作!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.