2014-01-14 54 views
0

我正在使用最新版本的CodeIgniter。在我的應用程序中,我必須包含一個PHP文件,如'example.php'。我真的需要這個文件,因爲重寫它到CI會花費很多時間。 include只是用來在框架中包含一些舊的東西。包含的文件認爲它在根中,而它在子文件夾中

重點:包括工作正常,但包含的文件認爲它在根,而其真正在一個子文件夾。

該文件應該位於:foo/bar/example.php。儘管如此,文件實際上工作,但在該文件中,我還必須包括其他文件。

觀光嘗試:

  1. 包括包括經由基座URL(而不是../../secondInclude.php)
  2. 此時它可以找到第二包括使用example.php ,但它會導致一個大的瀏覽器錯誤(與服務器失去連接);
  3. 試過PHP CHDIR,但給了相同的結果,2點

我不知道如果其CI的問題,還是我的服務器(IIS7)或別的東西。

+0

你到目前爲止嘗試過什麼? __ DIR __和類似的PHP魔術常量的輸出是什麼? – user1853181

+0

首先不要使用「文件認爲」之類的術語。其次顯示你已經嘗試過的代碼。 – user2936213

+0

就像我說的,當前目錄的輸出是根文件夾,而它應該是2個子文件夾。我嘗試過的代碼非常簡單:包含來自CI控制器的example.php(這是可行的)。這個例子。PHP然後說它在根(而不是)和包含在example.php其他文件根本不工作。如果我使用像../../foo.php這樣的路徑(在example.php中),它說它找不到它。如果我使用根路徑,如:<?= base_url()?>。'folder1/folder2/bar.php,那麼我會從瀏覽器中獲得'連接丟失'。 – douweegbertje

回答

0

當包括在根index.php文件

// Path to the system folder 
define('BASEPATH', str_replace("\\", "/", $system_path)); 

// Path to the front controller (this file) 
define('FCPATH', str_replace(SELF, '', __FILE__)); 

// Name of the "system folder" 
define('SYSDIR', trim(strrchr(trim(BASEPATH, '/'), '/'), '/')); 

// The path to the "application" folder 
define('APPPATH', $application_folder.'/'); 

這樣一個文件看,如果你想包含的文件是內部application/目錄

使用APPPATH.'path/to/file'.EXT;

另一個例子

假設您在應用程序目錄內的新目錄中創建了一個新文件; application/custom_folder/custom_file.php

包括這個文件,你需要確定您的文件所在,

然後用上面定義的PATH

所以包括必須使用

APPPATH.'custom_folder/custom_file'.EXT,該.EXT只是PHP

0

假設你包含的文件都保存在包括意見文件夾

那麼你可以很容易包括文件與:

$this->load->view('includes/example.php'); 

作品像

include 'includes/example.php'; // in Core PHP 
+0

包含本身的作品。問題是,這個包含文件表示它在根目錄中,而它在一個子文件夾中。這會給該文件中包含的其他內容帶來問題,因爲那些文件不起作用。 – douweegbertje

相關問題