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

Check if url contain the same string

所以我想做的是当我在相应的类别时打开我的 class "selected"(这基本上是悬停)。几乎是主动悬停的东西。

我是这样的

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

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

事情是:当 url 像这样时它工作得很好:http://my-website.com/en/15-this-categorie
但是当 url 为 http://my-website.com/en/ 时,它确实会在每次悬停时打开:http://my-website.com/en/ 在这里,悬停的 none 应该打开。
需要帮助!

问题是你的$url是大海捞针

因此,由于 /en/$url 的一部分,它将匹配。

您可以调高变量,或者为 /en/

设置例外

所以

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

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

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

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

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

或在Php

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

此致

非常感谢您的所有回答: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