我在codeigniter中使用文件和流,我遇到的一个问题是像fopen这样的函数无法检测同一文件夹中的文件。例如,
如果我的函数和文件都在HELPER文件夹中,我不能简单地指定fopen('file','r'),因为它不会检测到它。
所以我去网站查看有关文件的文档,这就是它指定的内容:
注意:路径是相对于主站点index.php文件,而不是您的控制器或视图文件。 CodeIgniter使用前端控制器,因此路径始终相对于主站点索引。
所以我改变了application / helper / filename的路径并且它有效。
我知道这是由于前端控制器(index.php)引起的某种类型的重新路由引起的,但我的理解还不完整。有人可以向我解释当我尝试像fopen这样的事情时CI会发生什么?
感谢您的时间。
答案 0 :(得分:1)
这很简单。有一个且只有一个文件处理控制器/模型/帮助器(称为“前端控制器”):/index.php
。所以一切都通过这个脚本发生。
当您需要包含某些内容时,路径相对于index.php
。一个好的做法是使用CodeIgniter环境常量包含您的文件。你可以看看这个:http://jimdoescode.blogspot.com/2011/01/some-codeigniter-constants.html。
例如:
<?php
include(APPPATH ."/helpers/my_helper.php");
?>