2

我有一个文件结构如下:

>project
 >admin
 >classes
  >class_main.php
 >templates
  >foot.php

在 class_main.php 中,我试图使用require_once相同的文件,这取决于用户在我的类的 __destruct 函数中的位置(即,如果用户在管理目录中,require_once "../templates/foot.php"否则)。require_once "./templates/foot.php"

我的问题是,无论我尝试什么,我总是收到相同的错误:

警告:require_once(C:\wamp\www\project\classes/templates/foot.php) [function.require-once]:无法打开流:C:\wamp\www\project\classes 中没有这样的文件或目录\class_main.php 在第 22 行

我努力了:

  • 使用 require_once 作为函数
  • 使用dirname(__FILE__)__DIR__
  • 使用\and\\代替/

我怎样才能做到这一点?

目前 __destruct 函数的完整代码是:

    function __destruct()
    {
        if($this->admtrim($_SERVER['PHP_SELF']) == 'admin')
        {
            require_once "../templates/foot.php";
        }
        else
        {
            require_once './templates/foot.php';
        }
    }

澄清一下,这个脚本位于,C:\wamp\www\project\classes\class_main.php我试图包含的文件位于C:\wamp\www\project\templates\foot.php.

4

2 回答 2

0
C:\wamp\www\project\classes/templates/foot.php

这应该是不言自明的,在一个链接中查看反斜杠和正斜杠。这应该是

C:\wamp\www\project\classes\templates\foot.php

尝试在 windows 格式中使用反斜杠

编辑:

正如你提到的文件位于C:\wamp\www\project\templates\foot.php那么为什么不提供完整的路径

require_once("C:\wamp\www\project\templates\foot.php");
于 2013-03-05T06:51:32.823 回答
0

您的模板文件夹位于文件夹之外。但错误显示,它在类文件夹中搜索。

C:\wamp\www\project\classes/templates/foot.php

正确地包括它。

于 2013-03-05T06:53:52.317 回答