如何在 PHP 中不使用 GET 变量获取 URL 的最后一段?

How to get last segment of the URL without GET variables in PHP?

现在我是这样的:

<?
  $url=$_SERVER['REQUEST_URI'];
  $requred_string= substr(strrchr($url, "/"), 1);
?>

它 returns 最后一段,但它也 returns 我不需要的所有 ?p=y&g=x 胡言乱语。如何切掉 $_GET 变量?

您可以使用strtok来排除查询字符串:

$url = strtok($_SERVER['REQUEST_URI'], '?');
$requred_string = substr(strrchr($url, '/'), 1);
echo $requred_string;

或者如评论中所述,parse_url 也可以:

$requred_string = substr(strrchr(parse_url($url)['path'], '/'), 1); // PHP 5.4 or greater with dereference

这里有一个更优雅的方式basename(parse_url($url, PHP_URL_PATH))