使用PHP提取URL的最后一部分


Extract Last Part of URL using PHP

如何使用PHP提取URL的最后一部分。

以下是示例URL

http://www.example.com/123

我想要以下输出

123

我如何在php中做到这一点?

有很多方法可以解决这个问题。

  1. 使用parse_url并获取路径
  2. 找到/字符的位置,然后根据该位置提取字符串
  3. 使用正则表达式(/'d+$/
  4. 修剪末端的数字(rtrim($url, '0123456789')),比较长度,如果不相同,计算差值,然后提取数字
  5. 使用一个简单的循环,您可以向后迭代字符串,检查字符是否为数字。如果是,则将它们前置为字符串,否则停止循环

我可能会找到其他方法,但我认为这应该很好。如果你不能弄清楚,那是因为缺乏想象力。

这段代码适合我

 $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']);