我只是想知道如何使用PHP提取URL的最后一部分。
示例URL是:
http://domain.com/artist/song/music-videos/song-title/9393903
现在如何使用PHP提取最后一部分?
9393903
URL中始终有相同数量的变量,并且id始终在末尾。
您可以使用preg_match来匹配所需的URL部分。
preg_match
在这种情况下,由于该模式很简单,因此我们正在寻找一个正斜杠(\/并且由于正斜杠表示正则表达式模式的开始和结束,因此我们必须对其进行转义),以及一个或多个数字(\d+)字符串($)的末尾。圆括号\d+用于捕获我们想要的片段:即结尾。然后,我们将我们想要的结尾($end)分配给$matches[1](不是$matches[0],因为它与$url(即整个字符串)相同)。
\/
\d+
$
$end
$matches[1]
$matches[0]
$url
$url='http://domain.com/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. }
注意: 您可能会或可能不想在此正则表达式中添加更多的复杂性。例如,如果您知道您的URL字符串将 始终以 开头,http://则正则表达式可以变为/^http:\/\/.*\/(\d+)$/(其中.*表示零个或多个字符(不是换行符))。
http://
/^http:\/\/.*\/(\d+)$/
.*