Active1 year, 6 months ago

In PHP, what would be the cleanest way to get the parent directory of the current running script relative to the www root? Assume I have:

Script

Or just:

PhpMyDirectory is the leading website portal solution. Build and manage a powerful website with ease. Built using PHP and MySQL, phpMyDirectory can be used to create websites focused on a business directory, classifieds, link indexing and more!

This in-depth comparison of phpmydirectory.com and phplinkdirectory.com might explain which of these two domains is more popular and has better web stats. PhpMyDirectory is now leading business Directory Script. Download Nulled version of phpMyDirectory. Know about reviews, Features and Installation Guide. How can the answer be improved? PHP Enabled Link Indexing Softwares 01. This is a very powerful yet easy to use directory script. However, it is more like a Yellow Pages kind of system than a directory. Easydirector script is the ugly script and they have no refund policy. You will loose your money for sure if you buy this product. There is no professionalism in the script. PHP Business Directory is a responsive and SEO optimized php software for creating online business directory websites.

And I need to get /relative/path/to/ with slashes properly inserted. What would you suggest? A one liner is preferred.

EDIT

I need to get a path relative to the www root, dirname(__FILE__) gives me an absolute path in the filesystem so that won't work. $_SERVER['SCRIPT_NAME'] on the other hand 'starts' at the www root.

Phpmydirectory Scripture

Tatu Ulmanen
Tatu UlmanenTatu Ulmanen
101k28 gold badges165 silver badges178 bronze badges

13 Answers

If your script is located in /var/www/dir/index.php then the following would return:

or

Edit

This is a technique used in many frameworks to determine relative paths from the app_root.

File structure:

index.php is my dispatcher/boostrap file that all requests are routed to:

library.php is some file located an extra directory down and I need to determine the path relative to the app root (/var/www/).

There's probably a better way to calculate the relative path then str_replace() but you get the idea.

Mike BMike B

Phpmydirectory Script Fonts

27.1k10 gold badges75 silver badges103 bronze badges

As of PHP 5.3.0 you can use __DIR__ for this purpose.

The directory of the file. If used inside an include, the directory of the included file is returned. This is equivalent to dirname(__ FILE__).

See PHP Magic constants.

Charlie VieillardCharlie Vieillard

If I properly understood your question, supposing your running script is

This would give you the parent directory of your running script relative to the document www:

If you want the parent directory of your running script relative to server root:

Marco DemaioMarco Demaio
20.7k31 gold badges112 silver badges148 bronze badges
hanshans
Sliq
9,45221 gold badges85 silver badges133 bronze badges
BradBrad
Jordan Ryan MooreJordan Ryan Moore
6,4372 gold badges22 silver badges27 bronze badges

Here is what I use since I am not running > 5.2

Double dirname with file as suggested by @mike b for the parent directory, and current directory is found by just using that syntax once.

Note this function only returns the NAME, slashes have to be added afterwards.

AlexAlex
7,2395 gold badges26 silver badges68 bronze badges
Vignesh KMVignesh KM

Try this. Works on both windows or linux server..

str_replace(','/',dirname(dirname(__FILE__)))

cestarcestar
collidoscopecollidoscope

Phpmydirectory Scriptures

This is a function that I use. Created it once so I always have this functionality:

JohnJohn
Goodhope Kudakwashe DhliwayoGoodhope Kudakwashe Dhliwayo

Got it myself, it's a bit kludgy but it works:

So if I have /path/to/folder/index.php, this results in /path/to/.

Tatu UlmanenTatu Ulmanen
101k28 gold badges165 silver badges178 bronze badges

Phpmydirectory Script Hook

Not the answer you're looking for? Browse other questions tagged phpdirectory or ask your own question.