开发者

extract last part of a url

开发者 https://www.devze.com 2023-03-06 00:52 出处:网络
need the last part of the url http://example.com then the last part is nothing if it is http://ex开发者_高级运维ample.com/i then last part is i

need the last part of the url

http://example.com then the last part is nothing if it is http://ex开发者_高级运维ample.com/i then last part is i if it is http://example.com/i/am/file.php then last part is file.php

not sure if I use regex or what


This is a simple example:

 <?php
     $url = "http://example.com/i/am/file.php";
     $keys = parse_url($url); // parse the url
     $path = explode("/", $keys['path']); // splitting the path
     $last = end($path); // get the value of the last element 
 ?>

I hope this help you ;)


There is a function called parse_url().


For those of you using a CMS like WordPress or Magento that add a trailing slash, there is an easy addition to Vasil's solution:

<?php
 $url = "http://example.com/i/am/file.php";
 $keys = parse_url($url); // parse the url
 $path = explode("/", $keys['path']); // splitting the path
 $last = end($path); // get the value of the last element 
 $last = prev($path); // get the next to last element 
 ?> 

You can even just use a simple Request URI call like this:

    $request_path = $_SERVER['REQUEST_URI'];
    $path = explode("/", $request_path); // splitting the path
    $last = end($path);
    $last = prev($path);


$url = 'http://example.com/i/am/file.php';
$url = rtrim($url, '/');
preg_match('/([^\/]*)$/', $url, $match);
var_dump($match);

Test


Note that Vasil's example won't work if for some reason you have a trailing slash, as for instance some CMS systems will put at the end (Magento, I'm looking at you...)

Well, it'll work, but the end of the path is empty. Something to be aware of.

0

精彩评论

暂无评论...
验证码 换一张
取 消