包含一个公共文件只在一个文件Codeigniter中失败

时间:2015-07-20 10:14:35

标签: php codeigniter centos

我包括" navigation.php"在我的所有观点中都有共同的菜单。

<div id="navigation">
    <? include("navigation.php"); ?>
</div>

此代码适用于所有其他文件,但在一个文件中,它会产生错误。

Severity: Warning
Message: include(navigation.php): failed to open stream: No such file or directory
Filename: views/readsinvo_index.php
Line Number: 2


Severity: Warning
Message: include(): Failed opening 'navigation.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php')
Filename: views/readsinvo_index.php
Line Number: 2

in&#34; readsinvo_index.php&#34;它与其他文件相同

<div id="navigation">
    <? include("navigation.php"); ?>
</div>

并且这两个文件都在&#34; views&#34; 。两个文件都有权限777。

但是当我尝试

<? include(dirname(__FILE__)."/navigation.php"); ?>

它完美无缺,但在所有其他页面中,它在使用时正常工作

<? include("navigation.php"); ?>

是否有任何可能的原因我不能正常包含该文件在此文件中。我正在使用codeigniter框架和CentOS。

2 个答案:

答案 0 :(得分:2)

您可以使用APPPATH

APPPATH.'views/navigation.php'

how call another php file to Codeigniter view

可能重复

答案 1 :(得分:1)

CodeIgniter从单个条目脚本文件index.php运行。

因此,当您说当前目录时,它是index.php目录的路径。

如果您包含某个文件,它将首先搜索给定目录中存在的任何文件,然后搜索包含路径。

声明<? include(dirname(__FILE__)."/navigation.php"); ?>

dirname为您提供index.php的路径。

在视图中添加语句:<? include("/navigation.php"); ?>时,它将搜索views目录,因此会出错。