云端v 发表于 2016-3-22 02:30:09

ci 3.0 这个文件有疑问system/core/Loader.php

本帖最后由 云端v 于 2016-3-22 02:32 编辑

我在 include 一个文件的时候发生一个错误
注:这个文件是确实存在的。也不存在权限问题。

然后我去看了 system/core/Loader.php 这个文件的 969 行。

有个疑问,为什么这里5.4以下的版本要eval,而且报错了?
我的php版本是5.3的,然后我在969行上面 file_get_contents($_ci_path); 也能取到数据。
所以问题就在那个eval 里面。
然后我试着把eval 这一行注释掉,直接写成 include($_ci_path);

然后问题就解决了。不报错。

我知道这样不好,所以来问问大家有没有遇到类似的情况?该怎么解决?php版本是服务器的,升级比较麻烦,当初是yum 安装的,升级很多模块都不能用,要重新编译




Hex 发表于 2016-3-22 09:58:00

这个 eval 是用来解析 PHP 短标记的,你的视图应该写的有问题,视图里不要 include 而是要 load view

云端v 发表于 2016-3-22 11:40:35

Hex 发表于 2016-3-22 09:58
这个 eval 是用来解析 PHP 短标记的,你的视图应该写的有问题,视图里不要 include 而是要 load view ...

额,我这里确实需要include ,而且include 的这个文件里面就几个超链接,没有php标签,都是html 静态的。然后为什么不是5.4版本的就要解析短标签呢,新手求教

云端v 发表于 2016-3-22 11:50:34

Hex 发表于 2016-3-22 09:58
这个 eval 是用来解析 PHP 短标记的,你的视图应该写的有问题,视图里不要 include 而是要 load view ...


这个是我在视图里面include 的文件。就这几行

Hex 发表于 2016-3-22 12:30:05

云端v 发表于 2016-3-22 11:50
这个是我在视图里面include 的文件。就这几行

视图里不要 include,你这个需求就是视图嵌套,直接在视图里 $this->load->view('nav');

另外,你可以在 PHP 5.4 里打开 PHP 短标记,推荐在视图里使用 PHP 短标记。

云端v 发表于 2016-3-22 17:23:10

Hex 发表于 2016-3-22 12:30
视图里不要 include,你这个需求就是视图嵌套,直接在视图里 $this->load->view('nav');

另外,你可以在 ...

额,我是想达到一个自由换皮肤的功能,所以界面想在view 里面决定

Hex 发表于 2016-3-22 23:01:56

云端v 发表于 2016-3-22 17:23
额,我是想达到一个自由换皮肤的功能,所以界面想在view 里面决定

不太清楚你的具体情况,不过从 CI 的角度来说,不推荐自己去 include 东西,因为这样就会导致很多奇怪的问题,因为 CI 都有自己的文件组织方式。

云端v 发表于 2016-3-23 14:11:26

Hex 发表于 2016-3-22 23:01
不太清楚你的具体情况,不过从 CI 的角度来说,不推荐自己去 include 东西,因为这样就会导致很多奇怪的 ...

嗯,好的,谢谢你哦:handshake
页: [1]
查看完整版本: ci 3.0 这个文件有疑问system/core/Loader.php