簡體   English   中英

如何包含嵌套文件夾中的腳本?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM