Using require_once for up directory not working

Yves Gonzaga picture Yves Gonzaga · Jan 6, 2013 · Viewed 31.5k times · Source

I am using require_once like this

require_once('../mycode.php')

I am developing a wordpress plugin. My plugin folder is yves-slider where I have a file called yves-slider.php and a folder called admin. Inside admin folder I have a file called admin.php. I want to require file yves-slider.php in my admin.php which is located up one level directory. When I try to use

require_once('../yves-slider.php')

it gives me the following error

Warning: require_once(../yves-slider.php): failed to open stream: No such file or directory in C:\xampp\htdocs\wordpress\wp-content\plugins\yves-slider\yves-slider-admin\yves-slider-admin.php on line 4

Fatal error: require_once(): Failed opening required '../yves-slider.php' (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\wordpress\wp-content\plugins\yves-slider\yves-slider-admin\yves-slider-admin.php on line 4

Am I doing wrong? I am using XAMPP 3.1, I guess that's the best way to do it.

Answer

PeeHaa picture PeeHaa · Jan 6, 2013

You want to make that relative to the current path the file is in:

require_once __DIR__ . '/../yves-slider.php';

What probably is happening is that the current path PHP looks in is not the path you think it is. If you are curious about what it is (the current path) you could do echo getcwd();.