include_once файла из папки верхнего уровня

  • Автор темы Автор темы Palmiro
  • Дата начала Дата начала

Palmiro

Новичок
include_once файла из папки верхнего уровня

Сразу скажу, что поиском найти ответ на данный вопрос не удалось.

Ситуация следующая:
есть описание класса DB_class.php.
Далее в подпапках уточнения реализации для разных БД.

Соответственно, в каждом уточнении есть строка:
PHP:
include_once("..\DB_class.php"); // Родительский класс

Так вот в браузере эта строка вызывает ошибку:
Warning: include_once(..\DB_class.php) [function.include-once]: failed to open stream: No such file or directory in C:\Program Files\Apache2.2\htdocs\test\database\MySQL\DBFunctions_class.php on line 2

Как же правильно прописать ссылку на файл, расположенный по иерархии папок выше?

Заранее спасибо!
 
[m]dirname[/m]
+
__FILE__

-~{}~ 26.11.08 11:29:

include_once(dirname(__FILE__).'/../filename.php');?>
 
Palmiro, если ты почитаешь про относительные пути и про то, что при include текущая директория остается той же, что и у главного файла для всех подключенных, то поймешь, что проще могут быть только абсолютные пути
 
помнится меня знакомый java программист, заставил перечитывать ман на тему разницы между include и require
имхо, в такие моменты правильнее пользоваться require_once
 
Если это были предложения, то ошибка аналогична:
Warning: require_once(..\DB_class.php) [function.require-once]: failed to open stream: No such file or directory in C:\Program Files\Apache2.2\htdocs\test\database\MySQL\DBFunctions_class.php on line 2

Автор оригинала: fixxxer
код надо в принципе подключать только по абсолютным путям. :)
Простите за глупый вопрос:
PHP:
require_once("C:\Program Files\Apache2.2\htdocs\test\database\DB_class.php");
?
 
во первых, пиши прямые слэши, они работают и в винде и в unix и не надо экранировать.

во вторых, я предпочитаю в каком нибудь центровом инклюднике сделать что то наподобие

define('PATH_ROOT', dirname(__FILE__))
и инклюдить уже относительно него

как вариант - от $_SERVER['DOCUMENT_ROOT'], но это не очень хороший вариант, т.к. он в некоторых случаях не определен или определен неверно
 
Господа!
Всем спасибо за исчерпывающую консультацию!
Ситуация ясная.
 
HraKK
класс автолодера нужно тоже как-то подключить ;)
 
Сверху