Search code examples
phprequire-oncerealpath

PHP find require_once real path


i need to require_once this files main.class.php and functions.php and config.php to admin/test.php. how to php find require real path?!

NOTE: main.class.php in class folder , functions.php in includes folder and config.php in root directory and test.php in admin folder.

File Directory:

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

Solution

  • I would add your root folder to the include path and work from there.

    From 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';
    

    Update

    If I'm following your question correctly, assuming you wanted to define this in the config.php file, you would do something like this

    config.php

    set_include_path(implode(PATH_SEPARATOR, array(
        __DIR__,
        get_include_path()
    )));
    
    require_once 'class/main.class.php';
    require_once 'includes/functions.php';
    

    admin/test.php

    require_once __DIR__ . '/../config.php';