使用require_once在php中包含文件时出错

时间:2014-06-29 12:37:41

标签: php require-once

这是我的应用。根:

htdocs

    core/

        init.php

    classes/

        DB.php
        POST.php

    ajax/

        post_feeds.php

这是我的post_feeds.php;

require_once '../core/init.php';

文件init.php在那里,但我不明白为什么我收到此错误。

Warning: require_once(classes/DB.php): failed to open stream: No such file or directory in C:\Apache24\htdocs\core\init.php on line 9

Fatal error: require_once(): Failed opening required 'classes/DB.php' (include_path='.;C:\php\pear') in C:\Apache24\htdocs\core\init.php on line 9

当我init.php

时,我的require_once 'classes/DB.php';文件中没有错误

这是init.php

session_start();

date_default_timezone_set('Etc/GMT+2');
//date_default_timezone_set('Europe/Tirane');

//autoload for classes.
require_once 'classes/DB.php';
require_once 'classes/USER.php';
require_once 'classes/NOTIFICATION.php';

if (isset($_COOKIE["user_id"])) {
    $_SESSION['user_id'] = $_COOKIE['user_id'];
}

2 个答案:

答案 0 :(得分:2)

尝试使用绝对路径来包含文件:

$root = realpath($_SERVER["DOCUMENT_ROOT"]);
require_once("{$root}/core/init.php");

或者使用dirname:

require_once(dirname(__FILE__) .'/../core/init.php');

答案 1 :(得分:1)

你没有包含init.php的问题,第9行的init.php有问题:

  

警告:require_once(classes / DB.php):无法打开流:第9行的C:\ Apache24 \ htdocs \ core \ init.php 中没有此类文件或目录

打开init.php并将第9行的路径从require_once('classes/DB.php')更改为require_once('../classes/DB.php')

DB.php位于根目录的classes文件夹中,而在init.php的第9行,您包含ROOT/core/classes/DB.php