如果从文件夹中调用,则找不到rurequire_once文件

时间:2014-04-03 20:28:26

标签: php

我有一个使用PDO通过PHP构建的网站。在我的init.php文件中,我使用spl_autoload_register方法,然后使用require_once sanitize.php文件来清理数据。当我require来自根文件夹的core/init.php文件时,它一切正常,但如果我在root中创建一个文件夹,无论它被调用什么,我需要../core/init.php然后它抛出了这个错误:

[03-Apr-2014 22:10:06 Europe/Berlin] PHP Warning:  require_once(functions/sanitize.php): failed to open stream: No such file or directory in /Applications/MAMP/htdocs/project1/login/core/init.php on line 29

这是init.php文件:

// Autoload classes
function autoload($class) {
require_once 'classes/' . $class . '.php';
}
spl_autoload_register('autoload');

// Include functions
require_once 'functions/sanitize.php';

有什么想法吗?

更新

文件结构:

root
   core
     init.php
   classes
     ... all classes
   css
   functions
     sanitize.php
   processes
     login.inc.php
   js
     script.js
   index.php

在脚本文件中,我正在调用login.inc.php文件。如果login.inc.php文件位于processes文件夹之外,则它可以正常运行并且没有错误,如果它在processes文件夹中,则会抛出该错误。

2 个答案:

答案 0 :(得分:0)

require_once __DIR__ . '/functions/sanitize.php';

答案 1 :(得分:0)

使用docroot变量:

$doc_root = $_SERVER['DOCUMENT_ROOT'];
require_once($doc_root . "/functions/sanitize.php");