2011-06-25 59 views
35

Điều này có vẻ giống như một câu hỏi phổ biến nhưng không có câu hỏi nào trong số đó dường như là những gì tôi đang tìm kiếm. Nếu có một website:PHP - Lấy URL Hiện tại

www.example.com/test.php

Tôi muốn kéo "test.php" và nếu nó là một cái gì đó như:

www.example.com/folder /folder1/test.php

Tôi muốn một lần nữa để chỉ cần kéo "test.php" nhưng mọi thứ dường như kéo đường dẫn chính xác thay vì chỉ trang. Bất kỳ đề xuất?

+4

tại sao câu hỏi này "url hiện tại" trong chủ đề khi bạn không yêu cầu cho một url? Ngoài ra, nếu có mod_rewrite buộc url www.exemple.com/test, được viết lại thành test.php, đó có phải là test.php hoặc test mà bạn muốn không? – eis

Trả lời

43
$query = $_SERVER['PHP_SELF']; 
$path = pathinfo($query); 
$what_you_want = $path['basename']; 

Thì đấy.

+0

Rất rất tuyệt vời cảm ơn bạn! –

+0

Không sao, đừng quên đặt câu trả lời! :) –

+47

phiên bản ngắn hơn: '$ what_you_want = basename ($ _ SERVER ['PHP_SELF']); ' – Cyclone

2
$file = $_SERVER["SCRIPT_NAME"]; 
$break = explode('/', $file); 
$pfile = $break[count($break) - 1]; 
+0

Điều này trở lại là "/folder1/folder2/test.php" –

+0

@Howdy_McGee: Bạn có chắc chắn không? '$ pfile' chỉ nên giữ' test.php'. –

+0

@Howdy_McGee đã kiểm tra và nó hoạt động cho tôi: http: //localhost/test1/test2/file.php in "file.php" –

40

Điều này sẽ giúp bạn có được tên của tập tin đã được yêu cầu (dựa trên URL gọi, vị trí không thực sự của tập tin - chỉ trong trường hợp bạn đang sử dụng mod_rewrite):

$filename = basename($_SERVER['REQUEST_URI']); 

Đối cả http://www.example.com/testing01.phphttp://www.example.com/x/y/z/testing01.php sẽ cung cấp cho bạn:

testing01.php 
+4

Điều này tốt hơn gấp hai lần câu trả lời được chấp nhận, +1. –

+1

nó là về cùng một điều như câu trả lời hàng đầu nhưng câu trả lời hàng đầu được chia nhỏ hơn cho các mục đích thông tin IMO –

+3

@Howdy_McGee: Tôi không đồng ý. Sự khác biệt cơ bản là những gì chúng tôi thực sự hiển thị. Bạn đã hỏi về "_Getting URL hiện tại_". Theo [tài liệu] (http://php.net/manual/en/reserved.variables.server.php): '$ _SERVER ['REQUEST_URI']' có được "_The URI được đưa ra để truy cập trang này , ví dụ: '/index.html'._ ", trong khi' $ _SERVER [' PHP_SELF '] 'bằng" _Tên tệp của tập lệnh hiện đang chạy, liên quan đến gốc tài liệu. (...) _ ", có thể hoặc có thể không bằng với ở trên. Tôi đã giải thích sự khác biệt trong câu trả lời của tôi (trong phần về 'mod_rewrite'). – Tadeck

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