包含的文件认为它在根目录中,而它在子文件夹中

时间:2014-01-14 10:47:13

标签: php codeigniter iis-7 include include-path

我正在使用最新版本的CodeIgniter。在我的应用程序中,我必须包含一个PHP文件,如'example.php'。我真的需要这个文件,因为将它重写为CI需要花费很多时间。仅使用include,在框架中包含一些旧东西。

重点:include工作正常,但是包含的文件在根目录中认为它真的在子文件夹中。

该文件应位于:foo / bar / example.php中。 尽管如此,文件确实有效,但在该文件中我还必须包含其他文件。

事情尝试了:

  1. 通过基本网址(而不是../../secondInclude.php)在example.php中包含include
  2. 此时它可以找到第二个包含,但它会产生很大的浏览器错误(与服务器的连接丢失);
  3. 尝试过PHP chdir,但结果与第2点相同。
  4. 我不确定它是CI问题,还是我的服务器(IIS7)或其他问题。

2 个答案:

答案 0 :(得分:0)

在根index.php文件中包含FIle Look

// 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

答案 1 :(得分:0)

假设您所包含的文件保存在视图中的包含文件夹

然后您可以轻松地将这些文件包含在:

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

就像

一样
include 'includes/example.php'; // in Core PHP