PHP Get name of current directory

Php

Php Problem Overview


I have a php page inside a folder on my website.

I need to add the name of the current directory into a variable for example:

$myVar = current_directory_name;

Is this possible?

Php Solutions


Solution 1 - Php

getcwd();

or

dirname(__FILE__);

or (PHP5)

basename(__DIR__) 

http://php.net/manual/en/function.getcwd.php

http://php.net/manual/en/function.dirname.php

You can use basename() to get the trailing part of the path :)

In your case, I'd say you are most likely looking to use getcwd(), dirname(__FILE__) is more useful when you have a file that needs to include another library and is included in another library.

Eg:

main.php
libs/common.php
libs/images/editor.php

In your common.php you need to use functions in editor.php, so you use

common.php:

require_once dirname(__FILE__) . '/images/editor.php';

main.php:

require_once libs/common.php

That way when common.php is require'd in main.php, the call of require_once in common.php will correctly includes editor.php in images/editor.php instead of trying to look in current directory where main.php is run.

Solution 2 - Php

To get only the name of the directory where script executed:

//Path to script: /data/html/cars/index.php
echo basename(dirname(__FILE__)); //"cars"

Solution 3 - Php

You can use dirname(__FILE__) to get the path to the directory of the current file.

Example: /path_to/your_dir/your_file.php:

// use dirname to get the directory of the current file
$path = dirname(__FILE__);
// $path here is now /path_to/your_dir

// split directory into array of pieces
$pieces = explode(DIRECTORY_SEPARATOR, $path);
// $pieces = ['path_to', 'your_dir']

// get the last piece
echo $pieces[count($pieces) - 1];
// result is: your_dir

Solution 4 - Php

echo basename(__DIR__); will return the current directory name only
echo basename(__FILE__); will return the current file name only

Solution 5 - Php

Actually I found the best solution is the following:

$cur_dir = explode('\\', getcwd());
echo $cur_dir[count($cur_dir)-1];

if your dir is www\var\path\ Current_Path

then this returns Current_path

Solution 6 - Php

$myVar = str_replace('/', '', $_SERVER[REQUEST_URI]);

libs/images/index.php
Result: images

Solution 7 - Php

To get the names of current directory we can use getcwd() or dirname(__FILE__) but getcwd() and dirname(__FILE__) are not synonymous. They do exactly what their names are. If your code is running by referring a class in another file which exists in some other directory then these both methods will return different results.

For example if I am calling a class, from where these two functions are invoked and the class exists in some /controller/goodclass.php from /index.php then getcwd() will return '/ and dirname(__FILE__) will return /controller.

Solution 8 - Php

I use this line to get the actual file directory name without the path. (For windows)

substr(dirname(__FILE__), strrpos(dirname(__FILE__), '\\') + 1)

I changed it a bit to work on Linux also

substr(dirname(__FILE__), strrpos(str_replace('\\', '/', dirname(__FILE__)), '/') + 1)

Solution 9 - Php

basename(getcwd()); // returns only the current working dir name.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionSatch3000View Question on Stackoverflow
Solution 1 - PhpAndreas WongView Answer on Stackoverflow
Solution 2 - PhpyesnikView Answer on Stackoverflow
Solution 3 - Phpuser2169219View Answer on Stackoverflow
Solution 4 - PhpAmeer Ul IslamView Answer on Stackoverflow
Solution 5 - PhpAndrewView Answer on Stackoverflow
Solution 6 - PhpMickyView Answer on Stackoverflow
Solution 7 - PhpVishal Kumar SahuView Answer on Stackoverflow
Solution 8 - PhpLars02_View Answer on Stackoverflow
Solution 9 - PhpWicherView Answer on Stackoverflow