Skip to content
Advertisement

Get Last Part of URL PHP

I’m just wondering how I can extract the last part of a URL using PHP.

The example URL is:

http://domain.example/artist/song/music-videos/song-title/9393903

Now how can I extract the final part using PHP?

9393903

There is always the same number of variables in the URL, and the id is always at the end.

Advertisement

Answer

You can use preg_match to match the part of the URL that you want.

In this case, since the pattern is easy, we’re looking for a forward slash (/ and we have to escape it since the forward slash denotes the beginning and end of the regular expression pattern), along with one or more digits (d+) at the very end of the string ($). The parentheses around the d+ are used for capturing the piece that we want: namely the end. We then assign the ending that we want ($end) to $matches[1] (not $matches[0], since that is the same as $url (ie the entire string)).

$url='http://domain.example/artist/song/music-videos/song-title/9393903';

if(preg_match("//(d+)$/",$url,$matches))
{
  $end=$matches[1];
}
else
{
  //Your URL didn't match.  This may or may not be a bad thing.
}

Note: You may or may not want to add some more sophistication to this regular expression. For example, if you know that your URL strings will always start with http:// then the regex can become /^http://.*/(d+)$/ (where .* means zero or more characters (that aren’t the newline character)).

User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement