PHP находит реальный путь require_once

мне нужно require_once эти файлы main.class.php и functions.php и config.php до admin/test.php. как найти php, требуется реальный путь?!

ПРИМЕЧАНИЕ: main.class.php в class folder, functions.php в includes folder и config.php в каталоге root и test.php в admin folder.

Каталог файлов:

root
    /admin/
        ->test.php 
    /class/
        ->main.class.php
    /includes/
        ->functions.php
    /templates
    config.php
    phpinfo.php

person B.B King    schedule 01.04.2013    source источник
comment
почему бы не поместить /root в ваш include_path, тогда это просто require('class/main.class.php') и так далее?   -  person Marc B    schedule 02.04.2013
comment
@HamZa DzCyberDeV: ага! Я ищу лучший способ.   -  person B.B King    schedule 02.04.2013


Ответы (3)


Я бы добавил вашу папку root в путь включения и работал оттуда.

От admin/test.php

set_include_path(implode(PATH_SEPARATOR, array(
    realpath(__DIR__ . '/..'),
    get_include_path()
)));

require_once 'class/main.class.php';
require_once 'includes/functions.php';
require_once 'config.php';

Обновлять

Если я правильно понял ваш вопрос, предполагая, что вы хотите определить это в файле config.php, вы должны сделать что-то вроде этого

config.php

set_include_path(implode(PATH_SEPARATOR, array(
    __DIR__,
    get_include_path()
)));

require_once 'class/main.class.php';
require_once 'includes/functions.php';

админ/test.php

require_once __DIR__ . '/../config.php';
person Phil    schedule 01.04.2013
comment
этот полезный и красивый ответ. можно / как поместить ваш метод в «определить» и поместить в файл конфигурации, а затем в myfiles? - person B.B King; 02.04.2013

Вот решение, не зависящее от переменной $_SERVER:

require_once(__DIR__.'/../class/main.class.php');
require_once(__DIR__.'/../includes/functions.php');
require_once(__DIR__.'/../config.php');
person simon.denel    schedule 01.04.2013
comment
К вашему сведению, магическая константа __DIR__ существует с версии 5.3.0. __DIR__ === dirname(__FILE__) - person Phil; 02.04.2013

От admin/test.php вам потребуется следующее:

require_once("../class/main.class.php");
require_once("../includes/functions.php");
require_once("../config.php");
person zipser    schedule 01.04.2013
comment
Ни в коем случае и не рассматривайте это как нападение. Я просто не понял, что вы имели в виду. Расслабляться : ) - person zipser; 02.04.2013