2012-02-05 22 views
21

Tôi đang sử dụng này:Nhận thư mục lên một mức

echo dirname(__FILE__); 

mang đến cho:

C:\UwAmp\www\myfolder\admin 

Tuy nhiên tôi đang tìm kiếm con đường cho đến khi:

C:\UwAmp\www\myfolder\ 

từ kịch bản hiện hành. Làm thế nào có thể được thực hiện?

Trả lời

57

Bạn có thể làm một trong hai:

dirname(__DIR__); 

Hoặc:

__DIR__ . '/..'; 

... nhưng trong một môi trường máy chủ web có thể bạn sẽ thấy rằng bạn đã làm việc từ thư mục làm việc hiện tại tập tin, vì vậy bạn có thể chỉ cần sử dụng:

'../' 

... để tham khảo thư mục ở trên. Bạn có thể thay thế __DIR__ bằng dirname(__FILE__) trước PHP 5.3.0.

Bạn cũng nên lưu ý what __DIR__ and __FILE__ refers to:

Đường dẫn đầy đủ và tên tập tin của tập tin. Nếu được sử dụng bên trong bao gồm, tên của tệp được bao gồm sẽ được trả lại.

Vì vậy, nó không phải lúc nào cũng trỏ đến nơi bạn muốn.

+0

Cả hai đều không hoạt động :(Tôi nhận được chuỗi rỗng với điều đó – Dev555

+0

Bạn thực sự muốn làm gì với đường dẫn? Bạn đang cố gắng đưa tệp vào, sử dụng nó trong liên kết, v.v. – DaveRandom

+0

ok hoạt động ngay bây giờ, xấu của tôi. Cảm ơn – Dev555

11

Bạn có thể thử

echo realpath(__DIR__ . DIRECTORY_SEPARATOR . '..'); 
+0

Tôi nhận được chuỗi rỗng với điều đó – Dev555

+0

Điều này không được cung cấp cho bạn chuỗi trống ... Bạn có sử dụng PHP 5.3 không? –

+0

php 5.2 là những gì tôi đang sử dụng +1 để được trợ giúp. – Dev555

8
echo dirname(__DIR__); 

Nhưng lưu ý hằng __DIR__ đã được bổ sung trong PHP 5.3.0.

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