检查url是否包含相同的字符串

时间:2017-05-15 07:42:55

标签: php css url prestashop strpos

所以我想做的就是打开我的班级"选择" (基本上是悬停)当我在相应的类别上时。几乎是活跃的悬停事物。

所以,我在做什么

$url = $this->getLink($menu);
                $current_url = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

                $selected = (strpos($url, $current_url) !== false) ? true : false;

事情是:当网址如下时,它的效果非常好:http://my-website.com/en/15-this-categorie
但是,当网址为:http://my-website.com/en/时,它确实会在每次悬停时启用,此处,没有任何悬停应该打开。
需要帮助!

3 个答案:

答案 0 :(得分:0)

问题在于你的$url是大海捞针。

因此,/en/属于$url,因此会匹配。

您可以向上切换变量,也可以为/en/

设置例外

所以

$selected = (strpos($current_url, $url) !== false) ? true : false;

或异常的方式(这只是一个例子,不要盲目地复制粘贴它):

if($current_url == $_SERVER['HTTP_HOST'].'/en'){
    $selected = false;
}

答案 1 :(得分:0)

如果这与类别ID有关,请在smarty中尝试:

{if isset ($ page_name) && $ page_name = 'category' && $ smarty.get.id_category == 15}

或者在Php

if (Tools :: getValue ('id_category') == 15)

此致

答案 2 :(得分:0)

感谢您的所有答案:D
我通过比较id来解决这个问题,这实际上是最简单的方法和最合乎逻辑的方法

    $url = '/'.$menu['item'].'-';
    $current_url = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

    $selected = (strpos($current_url, $url) !== false) ? true : false;

$ menu [' item']获取类别ID btw