从网址中删除最后一部分

时间:2012-02-19 12:17:06

标签: php url preg-replace parse-url

  

可能重复:
  extract last part of a url

我有这样的网址:

http://www.domain.co.uk/product/SportingGoods/Cookware/1/B000YEU9NA/Coleman-Family-Cookset

我想要提取最终产品名称“Coleman-Family-Cookset”

当我使用parse_url和print_r时,我最终得到以下内容:

Array (
    [scheme] => http
    [host] => www.domain.co.uk
    [path] => /product/SportingGoods/Cookware/1/B000YEU9NA/Coleman-Family-Cookset
) 

如何在结束时修剪“Coleman-Family-Cookset”?

提前致谢

4 个答案:

答案 0 :(得分:7)

上面的所有答案都有效,但都使用了不必要的数组和正则表达式,你需要strrpos()的最后/位置,而你可以用substr()提取字符串:

substr( $url, 0, strrpos( $url, '/'));

您可能需要在+/- 1 之后添加strrpos()

这比使用preg_*explode更有效的解决方案,但都可以。

答案 1 :(得分:1)

$url = 'http://www.domain.co.uk/product/SportingGoods/Cookware/1/B000YEU9NA/Coleman-Family-Cookset';
$url = explode('/', $url);
$last = array_pop($url);
echo $last;

答案 2 :(得分:1)

$url = rtrim($url, '/');
preg_match('/([^\/]*)$/', $url, $match);
var_dump($match);

Test

答案 3 :(得分:1)

你有路径变量(来自数组,如上所示)。 使用以下内容:

$tobestripped=$<the array name>['path']; //<<-the entire path that is
$exploded=explode("/", $tobestripped);
$lastpart=array_pop($exploded);

希望这有帮助。