【问题标题】:php include function to include parent folder in LAMP serverphp包含函数以在LAMP服务器中包含父文件夹
【发布时间】:2013-06-27 14:21:06
【问题描述】:

我在 Windows 7 中使用 wamp 和 codeigniter 在 php 中开发 MVC 应用程序。该应用程序运行没有任何问题。

我对 linux 和 ubuntu 完全陌生。

但我需要在 ubuntu linux 机器上托管它。我在 windows wamp 中使用了<php include ('/../footer.php); ?>,它正在工作。

一旦我上传到 ubuntu 灯。我收到include ('/../footer.php) failed to open stream

我尝试在网上搜索但找不到解决方案。

如何解决这个问题。

【问题讨论】:

    标签: php codeigniter ubuntu lamp


    【解决方案1】:

    删除前导 / 并将您的包含更改为

     include("../footer.php");
    

    前导 / 表示来自文件系统的根目录。

    你在根部下面挖掘,但那里什么也没有。

    在处理 windows 和 linux 之间的问题时要注意的另一件事是 windows 上的 ../footer.php 与 ../Footer.php 相同,这在 linux 上不是这种情况(区分大小写与不区分大小写的文件系统)。

    更新

    最终的解决方案是将包含的相对路径添加到绝对路径中,方法是在其前面加上 __DIR__ 前缀,如 ...

    include(__DIR__."/../footer.php");
    

    【讨论】:

    • footer.php 相对于您的网关脚本(被重写的 index.php)在哪里。并确保它被称为 footer.php 而不是 Footer.php
    • 拼写正确。是小写footer.phpfooter.php 文件在views 文件夹中调用文件在views/auth/ 文件夹中
    • 通常在你的应用程序的根目录有一个 index.php 文件,你的所有请求都会被重写。在请求的上下文中,所有相对包含路径都将相对于该位置。 (该网关脚本的位置)
    • footer.php 会在 views 文件夹中吗?
    • 尝试将包含更改为include(__DIR__."/../footer.php");
    猜你喜欢
    • 2013-06-21
    • 2013-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-09
    • 1970-01-01
    • 1970-01-01
    • 2011-06-30
    相关资源
    最近更新 更多