php需要在类文件中

时间:2013-12-26 19:50:02

标签: php require

我的网站有以下文件夹结构:

    Admin/
    Tech/
index.php
    classes/
    include/
    core/

除了我尝试从Admin / index.php

调用以下代码时,一切似乎都有效
<?php
#including our init.php
require '../core/init.php';
$general->logged_in_protect();
?>

由于某种原因,我收到以下错误。我无法弄清楚该怎么做才能修复它,或者它是否可以修复它。

core / init.php文件包含以下代码:

<?php
    #starting the users session
    session_start();
    require 'include/database.php';
    require 'classes/users.php';
    require 'classes/general.php';

    $users = new Users($db);
    $general = new General();

    $errors = array();
?>

我收到的错误:

PHP Warning:  require(include/database.php): failed to open stream: No such file or directory in 

有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:1)

你可能只需要:

require '../include/database.php';
require '../classes/users.php';
require '../classes/general.php';

但是如果你使用了很多相对路径,它可能会很快变得混乱,所以你可能想要考虑使用你的基本目录(例如你也可以使用变量或常量):

require $_SERVER['DOCUMENT_ROOT'] . '/include/database.php';
require $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php';
require $_SERVER['DOCUMENT_ROOT'] . '/classes/general.php';

答案 1 :(得分:0)

如果您使用相对于当前脚本位置的路径,请执行以下操作:

<?php

require(dirname(__FILE__).'/../core/other.inc');

...
?>

无论include_path PHP ini设置如何,您始终都可以控制它。

在您的情况下,您应该具备以下条件:

<?php
  #including our init.php
  require(dirname(__FILE__).'/core/init.php');
  $general->logged_in_protect();
?>

core/init.php将如下所示:

<?php
    #starting the users session
    session_start();
    require(dirname(__FILE__).'/../include/database.php');
    require(dirname(__FILE__).'/../classes/users.php');
    require(dirname(__FILE__).'/../classes/general.php');

    $users = new Users($db);
    $general = new General();

    $errors = array();
?>

希望这有帮助。