2012-04-03 38 views
79

Tôi có một trang php bên trong một thư mục trên trang web của mình.PHP Nhận tên thư mục hiện tại

tôi cần phải thêm tên của thư mục hiện tại vào một biến ví dụ:

$myVar = current_directory_name; 

Đây có phải là có thể?

Trả lời

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

Bạn có thể sử dụng basename() để có được phần đuôi của con đường :)

Trong trường hợp của bạn, tôi muốn nói rằng bạn có nhiều khả năng tìm kiếm để sử dụng getcwd(), dirname(__FILE__) hữu ích hơn khi bạn có tệp cần bao gồm thư viện khác và được đưa vào thư viện khác.

Ví dụ:

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

trong bạn common.php bạn cần phải sử dụng các chức năng trong editor.php, vì vậy bạn sử dụng

common.php:

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

main.php

require_once libs/common.php 

Bằng cách đó khi common.php là require'd trong main.php, cuộc gọi của require_once trong common.php sẽ bao gồm chính xác editor.php trong images/editor.php thay vì tìm trong thư mục hiện tại nơi main.php được chạy.

+4

Và 'basename (__ __ DIR) 'trong PHP 5 – Xeoncross

+0

@Xeoncross nhờ đã chỉ ra rằng :) –

+0

này đem lại cho tôi toàn bộ con đường . Có cách nào để chỉ nhận tên thư mục không? – Satch3000

11

Ví dụ

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

THIS_is_the_DIR_I_Want

Một soultion rằng TRÌNH:

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

OP dường như đã chấp nhận câu trả lời cho vấn đề của họ. Mặc dù bạn đã thêm giá trị rõ ràng, bạn có cần lỗ thông hơi của mình ở đây không? – Dutts

+0

http://stackoverflow.com/help/formatting sẽ giải thích cách làm cho mọi thứ ** in đậm ** tránh sử dụng các chữ cái mà bạn đã chỉ ra đúng là biểu thị la hét trên internet. – Dutts

7

Trên thực tế tôi thấy solutio tốt nhất n như sau:

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

nếu dir của bạn là www \ var \ đường dẫn \ Current_Path

thì đây trả Current_path

+3

Xem ra, trong các máy chủ Linux, chúng tôi không sử dụng dấu gạch chéo ngược nhưng dấu gạch chéo. PHP có một hằng số phép thuật để biến nó thành nền tảng, xem '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

Miễn là bạn có PHP 5.3 hoặc cao hơn –

7

Để có được chỉ là tên của thư mục nơi tập lệnh được thực thi:

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

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

libs/hình ảnh /index.php kết quả: hình ảnh

+0

Điều này làm việc cho tôi vì vậy tôi đã bỏ phiếu cho người xuống bình chọn mà không có bất kỳ lời giải thích nào. Ngăn xếp ngăn xếp có một số người dùng bị lừa đảo nhiều nhất trên mạng. Boooo Hisssssssssssss – warmwhisky

Các vấn đề liên quan