PHP - strip URL to get tag name

2019-03-05 23:08发布

问题:

I need to strip a URL using PHP to add a class to a link if it matches.

The URL would look like this:

http://domain.com/tag/tagname/

How can I strip the URL so I'm only left with "tagname"?

So basically it takes out the final "/" and the start "http://domain.com/tag/"

回答1:

For your URL

http://domain.com/tag/tagname/

The PHP function to get "tagname" is called basename():

echo basename('http://domain.com/tag/tagname/');   # tagname


回答2:

combine some substring and some position finding after you take the last character off the string. use substr and pass in the index of the last '/' in your URL, assuming you remove the trailing '/' first.



回答3:

As an alternative to the substring based answers, you could also use a regular expression, using preg_split to split the string:

<?php 
$ptn = "/\//";
$str = "http://domain.com/tag/tagname/";
$result = preg_split($ptn, $str);
$tagname = $result[count($result)-2];
echo($tagname);
?>

(The reason for the -2 is because due to the ending /, the final element of the array will be a blank entry.)

And as an alternate to that, you could also use preg_match_all:

<?php 
$ptn = "/[a-z]+/";
$str = "http://domain.com/tag/tagname/";
preg_match_all($ptn, $str, $matches);
$tagname = $matches[count($matches)-1];
echo($tagname);
?>


回答4:

Many thanks to all, this code works for me:

$ptn = "/\//";
$str = "http://domain.com/tag/tagname/";
$result = preg_split($ptn, $str);
$tagname = $result[count($result)-2];
echo($tagname);


标签: php url