我使用的是最新版本的CodeIgniter。在我的应用程序中,我必须包含一个PHP文件,例如"example.php"。我真的需要这个文件,因为将其重写为 CI 需要很多时间。包含只是用来在框架中包含一些旧的东西。
关键:包含工作正常,但包含的文件认为它在根目录中,而实际上它在子文件夹中。
该文件应位于:foo/bar/example.php。尽管如此,该文件实际上可以工作,但是在该文件中,我还必须包含其他文件。
尝试过的事情:
- 在示例中包含包含.php通过基本 URL(而不是 ../../秒包括.php)
- 此时它可以找到第二个包含,但它给出了一个大的浏览器错误(失去与服务器的连接);
- 尝试了 PHP chdir,但给出了与第 2 点相同的结果。
我不确定这是 CI 问题,还是我的服务器 (IIS7) 或其他问题。
当包含 FIle 查看根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
假设包含的文件保存在视图中的包含文件夹中
然后,您可以轻松地将该文件包含在:
$this->load->view('includes/example.php');
作品像
include 'includes/example.php'; // in Core PHP