PHP - strip URL to get tag name

前端 未结 4 833
耶瑟儿~
耶瑟儿~ 2021-01-28 06:24

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/

Ho

相关标签:
4条回答
  • 2021-01-28 06:40

    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);
    ?>
    
    0 讨论(0)
  • 2021-01-28 06:42

    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);
    
    0 讨论(0)
  • 2021-01-28 07:03

    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
    
    0 讨论(0)
  • 2021-01-28 07:07

    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.

    0 讨论(0)
提交回复
热议问题