2012-04-03 22 views
79

Ich habe eine PHP-Seite in einem Ordner auf meiner Website.PHP Name des aktuellen Verzeichnisses

Ich brauche den Namen des aktuellen Verzeichnisses in eine Variable zum Beispiel hinzuzufügen:

$myVar = current_directory_name; 

ist das möglich?

Antwort

171
getcwd(); 

or 

dirname(__FILE__); 

or (PHP5) 

basename(__DIR__) 

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

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

Sie basename() verwenden können, das hintere Teil des Weges zu bekommen :)

In Ihrem Fall würde ich sagen, Sie sind am ehesten zu verwenden suchen getcwd(), dirname(__FILE__) ist nützlicher, wenn Sie eine Datei haben, die eine andere Bibliothek enthalten muss und in einer anderen Bibliothek enthalten ist.

ZB:

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

in Ihrem common.php müssen Sie Funktionen verwenden in editor.php, so dass Sie verwenden

common.php:

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

main.php

require_once libs/common.php 

Wenn common.php require'd in main.php ist, wird der Aufruf von require_once in common.phpeditor.php in images/editor.php korrekt enthalten, statt zu versuchen, in dem aktuellen Verzeichnis zu suchen, in dem main.php ausgeführt wird.

+4

Und 'Basisnamen (__ __ DIR)' in PHP 5 – Xeoncross

+0

@Xeoncross Dank für den Hinweis aus :) –

+0

Das bin ich den ganzen Weg schenkt . Gibt es eine Möglichkeit, nur den Verzeichnisnamen zu erhalten? – Satch3000

11

Zum Beispiel

Your Path = /home/serverID_name/www/your_route_Dir/

THIS_is_the_DIR_I_Want

A Soultion, das funktioniert:

$url = dirname(\__FILE__); 
$array = explode('\\\',$url); 
$count = count($array); 
echo $array[$count-1]; 
+3

Die OP scheint bereits eine Antwort auf ihr Problem angenommen zu haben. Obwohl Sie deutlich Mehrwert geschaffen haben, müssen Sie hier Ihre Vorräte entlüften? – Dutts

+0

http://StackOverflow.com/Help/formatting wird erklären, wie man die Dinge ** fett macht ** vermeidet die Verwendung von Kappen, die Sie ganz richtig hingewiesen haben bedeutet im Internet zu schreien. – Dutts

7

Eigentlich fand ich die beste solutio n ist die folgende:

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

wenn Ihr dir ist www \ var \ pfad \ current_path

dann diese zurück current_path

+3

Passen Sie auf, in Linux-Servern verwenden wir keinen Backslash, sondern den Schrägstrich. PHP hat eine magische Konstante, um es plattformübergreifend zu machen, siehe 'PATH_SEPARATOR' – renoirb

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

Solange Sie PHP 5.3 oder höher haben –

7

Um nur den Namen des Verzeichnisses zu erhalten wo Skript ausgeführt:

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

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

libs/Bilder /index.php Ergebnis: Bilder

+0

Das funktionierte für mich, also wählte ich die Person, die ohne Erklärung abstimmte. Stack Overflow hat einige der pedantischsten vermissten Benutzer im Netz. Boooo Hisssssssssssss – warmwhisky

Verwandte Themen