Asim Zaidi
Asim Zaidi

Reputation: 28284

extract last part of a url

need the last part of the url

http://example.com then the last part is nothing if it is http://example.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

Upvotes: 6

Views: 14817

Answers (5)

WebsiteDecoded
WebsiteDecoded

Reputation: 31

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);

Upvotes: 3

user3115369
user3115369

Reputation: 1

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.

Upvotes: 0

powtac
powtac

Reputation: 41050

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

Test

Upvotes: 2

Vasil Dakov
Vasil Dakov

Reputation: 2039

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 ;)

Upvotes: 19

Denis de Bernardy
Denis de Bernardy

Reputation: 78443

There is a function called parse_url().

Upvotes: 5

Related Questions