Tôi đã thực hiện khá nhiều tìm kiếm điều này, vì vậy tôi xin lỗi nếu đây là một bản dupe.
Dù sao, tôi cần lấy tên của thư mục tệp hiện tại. Ví dụ: tôi muốn chuyển đổi một cái gì đó như example.com/folder/subfolder/file.php
thành subfolder
.
Mã hiện tại của tôi là dirname($_SERVER['PHP_SELF'])
, nhưng trả về /folder/subfolder
thay vì subfolder
. Cảm ơn bạn!Nhận thư mục mẹ của tệp hiện tại PHP
Trả lời
Cách đơn giản nhất là:
basename(__DIR__);
Chỉ cần sử dụng ..
đó là một người truy cập tương đối có nghĩa là thư mục mẹ.
Tôi biết điều đó, nhưng tôi muốn lấy tên của thư mục, không truy cập thư mục. – Andrey
Ahah, làm theo ý muốn của bạn nhưng điều này rõ ràng sẽ làm tăng một lá cờ đỏ nếu tôi thuê bạn. Bạn có thể làm một thiết kế phù hợp mà không cần dựa vào toàn bộ hệ thống tập tin; chỉ sự kiên trì của nó. –
Bạn cần phải kết hợp mã hiện tại của bạn sử dụng dirname()
với một cuộc gọi đến basename()
:
$parent = basename(dirname($_SERVER['PHP_SELF']));
dirname()
sử dụng với basename()
sẽ làm việc ... cũng này nếu bạn muốn để có được chúng tất cả:
$folders = explode ('/', $_SERVER['PHP_SELF']);
Bây giờ $ thư mục sẽ chứa một mảng của tất cả các tên thư mục.
Chúc mừng.
Nếu thực hiện điều này, bạn nên cẩn thận với phần tử rỗng tại chỉ mục 0, kết quả là đường dẫn bắt đầu bằng '/' – DaveRandom
Điểm tốt - cảm ơn vì đã thêm suy nghĩ đó. –
@DaveRandom Một lý do khác để thực hiện các kiểm tra trước khi đưa mã vào hoạt động! :) Nhưng yeah nếu đó là một người gây phiền nhiễu tôi đoán cách khác chỉ có thể sử dụng regex. – kiradotee
$folder = basename(dirname(__FILE__));
str_replace('/','',$_SERVER[REQUEST_URI]);
Kết quả:
lib/hình ảnh /index.php
hình ảnh
- 1. PHP Nhận tên thư mục hiện tại
- 2. Tại sao danh sách thư mục chứa thư mục (.) Và thư mục mẹ (..) hiện tại?
- 3. Nhận đường dẫn thư mục hiện tại
- 4. Nhận thư mục hiện tại và chạy Tệp bằng vbscript?
- 5. expressjs: Gửi tệp từ thư mục mẹ
- 6. Tải tệp từ thư mục mẹ
- 7. Nhận đường dẫn tương đối của các tệp trong các thư mục con từ thư mục hiện tại
- 8. Nhận thư mục cha của thư mục hiện tại trong Ruby
- 9. Cách lấy thư mục mẹ của loạt cửa sổ
- 10. Cách lấy tên của thư mục mẹ trong thư mục nơi tập lệnh đang chạy trong php?
- 11. Nhận thư mục hiện tại trong asp.net MVC
- 12. nhận được thư mục hiện tại trong VBScript
- 13. Nhận đường dẫn thư mục gốc của dự án PHP
- 14. Nhận đường dẫn hiện tại của tệp java đang chạy
- 15. DotLess - Cách nhập tệp LESS vào thư mục mẹ?
- 16. Java, đọc tệp từ thư mục hiện tại?
- 17. Cách liệt kê các tệp trong thư mục hiện tại?
- 18. xslt lấy đường dẫn thư mục tệp hiện tại
- 19. Liệt kê các tệp trong thư mục của tệp JAR hiện tại
- 20. Thư mục mẹ trong R
- 21. Recursively scp trừ thư mục hiện tại
- 22. Nhận đường dẫn tệp của tệp trong dự án hiện tại của bạn
- 23. getResource với tham chiếu thư mục mẹ
- 24. vimrc - thư mục làm việc hiện tại
- 25. Powershell Nhận thư mục gốc của một tệp
- 26. php getcwd() giải quyết mục tiêu của liên kết tượng trưng thay vì thư mục hiện tại
- 27. Nhập tương đối từ thư mục mẹ
- 28. Thay đổi thư mục hiện tại của FileSystemObject
- 29. Lấy thư mục ảnh hiện tại của máy ảnh
- 30. Nguồn gốc của '.' có nghĩa là thư mục hiện tại?
Điều này có nên được đánh dấu là câu trả lời đúng không? '$ _SERVER ['PHP_SELF']' có thể trả về tệp có chứa "tệp hiện tại". "Tệp hiện tại" là __DIR__ phải không? Hoặc tôi có thiếu gì đó không? – taylorcressy
@taylorcressy có vẻ như câu trả lời ở trên đã được đưa ra trước đây ... chúng tôi cũng không thực sự sử dụng hằng số ma thuật –
@MarcelDjaman Tôi hiểu tại sao câu trả lời khác lại được đánh dấu đúng. Tôi chỉ đơn giản là làm rõ rằng đây là câu trả lời đúng. Về mặt kỹ thuật, câu trả lời đầu tiên không chính xác trong mọi trường hợp (ví dụ: trong một tệp đính kèm) – taylorcressy