如何使用PHP提取URL的最后一部分。
以下是示例URL
http://www.example.com/123
我想要以下输出
123
我如何在php中做到这一点?
有很多方法可以解决这个问题。
- 使用
parse_url
并获取路径 - 找到
/
字符的位置,然后根据该位置提取字符串 - 使用正则表达式(
/'d+$/
) - 修剪末端的数字(
rtrim($url, '0123456789')
),比较长度,如果不相同,计算差值,然后提取数字 - 使用一个简单的循环,您可以向后迭代字符串,检查字符是否为数字。如果是,则将它们前置为字符串,否则停止循环
我可能会找到其他方法,但我认为这应该很好。如果你不能弄清楚,那是因为缺乏想象力。
这段代码适合我
$id = substr($url, strrpos( $url, '/' )+1);
strrpos
获取斜线最后一次出现的位置;substr
返回该位置之后的所有内容。
try:
$url = "http://www.example.com/123";
echo str_replace('/','', parse_url($url, PHP_URL_PATH));
您可以使用此代码来实现您想要的:
<?php
$uri = explode( '?', $_SERVER['REQUEST_URI'] );
$uri = $uri[0];
$part_uri = explode( "/", $uri);
print_r( $uri );
print_r( $part_uri );
?>
$part_uri将成为当前网站路径的数组。例如http://adomain.com/manual/test结果:
Array ( [0] => [1] => manual [2] => test )
因此,要获得"123",您需要使用$part_uri[1]
您可以尝试:
end(explode('/', $url))
尝试substr()
echo substr('http://www.example.com/123', -3);
或parse_url()
$p =parse_url('http://www.example.com/123');
echo str_replace('/', '', $p['path']);