Hãy thử điều này:
function getLastPathSegment($url) {
$path = parse_url($url, PHP_URL_PATH); // to get the path from a whole URL
$pathTrimmed = trim($path, '/'); // normalise with no leading or trailing slash
$pathTokens = explode('/', $pathTrimmed); // get segments delimited by a slash
if (substr($path, -1) !== '/') {
array_pop($pathTokens);
}
return end($pathTokens); // get the last segment
}
echo getLastPathSegment($_SERVER['REQUEST_URI']);
Tôi cũng đã thử nghiệm nó với một vài URL từ các ý kiến. Tôi sẽ phải giả định rằng tất cả các đường dẫn kết thúc bằng một dấu gạch chéo, bởi vì tôi không thể xác định nếu/bob là một thư mục hoặc một tập tin. Điều này sẽ giả định nó là một tập tin, trừ khi nó có dấu gạch chéo.
echo getLastPathSegment('http://server.com/bla/wce/news.php'); // wce
echo getLastPathSegment('http://server.com/bla/wce/'); // wce
echo getLastPathSegment('http://server.com/bla/wce'); // bla
bahamut100, Nếu đây là câu trả lời đúng, thì bạn nên chấp nhận câu trả lời bằng cách nhấp vào dấu kiểm màu trắng bên cạnh. –
@ bahamut100, bạn được chào đón. Mặc dù tôi muốn đi (và chấp nhận) câu trả lời của alex. –
@Bart K. Không sao, bạn cũng sẽ hoàn thành công việc! +1 – alex