2012-04-03 19 views

Odpowiedz

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

Można użyć basename() dostać tylną część ścieżki :)

W twoim przypadku, powiedziałbym jesteś najprawdopodobniej chce skorzystać getcwd(), dirname(__FILE__) jest bardziej przydatna, gdy masz plik, który musi zawierać inną bibliotekę i znajduje się w innej bibliotece.

Np

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

w swojej common.php trzeba użyć funkcji editor.php, więc użyć

common.php:

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

main.php

require_once libs/common.php 

W ten sposób, gdy common.php jest require'd w main.php, wywołanie require_once w common.php będzie poprawnie zawierało editor.php w images/editor.php zamiast próbować szukać w bieżącym katalogu, w którym uruchomiono main.php.

+4

i 'basename (__ __ DIR)' w PHP 5 – Xeoncross

+0

@Xeoncross dzięki za wskazanie, że obecnie :) –

+0

To daje mi całą drogę . Czy istnieje sposób na uzyskanie tylko nazwy katalogu? – Satch3000

11

dla PRZYKŁADU

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

THIS_is_the_DIR_I_Want

Soultion że działa:

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

OP najwyraźniej przyjął już odpowiedź na ich problem. Mimo, że wyraźnie dodałeś wartości, czy musisz wywietrzyć swoje futrzaki tutaj? – Dutts

+0

http://stackoverflow.com/help/formatting wyjaśni, jak robić rzeczy ** odważnie ** unikając używania czapek, które słusznie wskazałeś oznacza krzyczenie w Internecie. – Dutts

7

Właściwie znaleźć najlepszy solutio n jest następująca:

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

jeśli dir to www \ var \ ścieżka \ Current_Path

wówczas zwraca Current_path

+3

Uważaj, na serwerach Linux nie używamy ukośnika odwrotnego, ale ukośnika. PHP ma magiczną stałą, aby stała się platformą, zobacz '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

Tak długo, jak masz PHP 5.3 lub nowszy –

7

Aby uzyskać tylko nazwę katalogu gdzie wykonano skrypt:

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

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

libs/zdjęć /index.php wynik: zdjęć

+0

To działało dla mnie, więc głosowałem na osobę, która głosowała bez żadnego wyjaśnienia. Stack overflow ma jednych z najbardziej pedantycznych spieprzonych użytkowników w sieci. Boooo Hisssssssssssss – warmwhisky

Powiązane problemy