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