删除最后一个/在URL之前的所有字符

时间:2015-11-03 12:41:29

标签: php

我需要删除最后一个" /"

之前的所有字符

这是我的网址:

http://www.example.com/highlights/cat/all-about-clothing/

我想只有:

all-about-clothing

由于

7 个答案:

答案 0 :(得分:7)

使用basename()

$str = 'http://www.example.com/highlights/cat/all-about-clothing/';
echo basename($str);
// Outputs: all-about-clothing

修改

另一种解决方案:

$str = 'http://www.example.com/highlights/cat/all-about-clothing/';
$path = pathinfo($str, PATHINFO_BASENAME);
echo "<br/>" . $path;

答案 1 :(得分:2)

使用PHP的parse_url()功能。

编辑: <{1}}或QFileDialog是更简单的方式。

答案 2 :(得分:1)

$str = 'http://www.example.com/highlights/cat/all-about-clothing/';
$str = trim($str,'/');
$str = explode('/',$str);
echo $str = end($str);

//获得结果

所有-约衣

答案 3 :(得分:0)

<?php
$url = "http://www.example.com/highlights/cat/all-about-clothing/";
$url_path = parse_url($url, PHP_URL_PATH);
$basename = pathinfo($url_path, PATHINFO_BASENAME);
echo $basename;
?>

答案 4 :(得分:0)

您也可以使用regex

$match = [];
$subject = 'http://www.example.com/highlights/cat/all-about-clothing/';
$pattern = '/http:\/\/www\.example\.com\/highlights\/cat\/(.*)/';
preg_match($pattern, $subject, $match);
print_r($match);

您可以看到结果here

答案 5 :(得分:0)

<?php
$url = 'http://www.example.com/highlights/cat/all-about-clothing/';
$basename =  split('/',$url);    
echo $basename[5];
?>

答案 6 :(得分:0)

上述大部分解决方案都集中在确切的示例网址上, 请注意,如果在字符串的末尾添加了额外的参数, 你可能会得到错误的结果:

http://www.example.com/highlights/cat/all-about-clothing/?page=1 http://www.example.com/highlights/cat/all-about-clothing/item/1

缓存第3个&#34;目录&#34;在域名之后,忽略URL的其余部分,可以使用以下代码:

$url = "http://www.example.com/highlights/cat/all-about-clothing/item/1";

$url_path = parse_url($url, PHP_URL_PATH); #  /highlights/cat/all-about-clothing/item/1

$dirs = explode('/', $url_path); # Array([0] =>"", [1]=>"highlights", [2]=>"cat", [3]=>"all-about-clothing", [4]=>"item", [5]=>"1") 

echo $dirs[3]; # all-about-clothing