我正在将应用程序从 PHP 5.5服务器移动到PHP 5.6 服务器。该应用程序基于 Codeigniter 2.2 。
在旧服务器上,我在视图中有类似的内容,包括其他模板部分:
include('header.php');
这个简单直接的功能就像旧服务器上的魅力一样。
在新服务器上,我得到了例外情况,无法找到包含的文件。
我发现,PHP预处理器试图从linux包含路径以及“system / core”目录中获取文件。但不是来自视图本身所在的目录。
我不知道这两个系统之间的区别是什么......有谁知道我可以在哪里搜索这个问题?
答案 0 :(得分:0)
检查文件路径。是否在其他文件夹内。
也可以试试
$this->load->view('header.php');
或者也可以在Controller中加载标题
还有一些有用的关键字。
application/
答案 1 :(得分:0)
感谢大家的所有意见 - 我已经尝试了大部分调试尝试。
现在我更深入地挖掘了找到了我的问题的原因。 PHP中的 short_open_tag指令导致了这个问题。因为这个新服务器在 php.ini 中有一些细微差别。
在 core / loader.php 如果禁用了short_open_tags的.ini设置,Codeigniter会尝试将短打开标记替换为普通标记。出于任何原因,这种替换不能按预期工作,这导致了我的问题。
因此,如果在将Codeigniter安装从一台计算机移动到另一台计算机后,任何人都遇到同样的问题,那么这可能就是您可以开始的地方。
感谢你们所有人, 迈克尔