Return true/false 如果 URL 中的单词匹配特定单词

Return true/false if word in URL matches specific word

我目前使用:

    if(strpos($command->href,§current_view) !== false){
        echo '<pre>true</pre>';
    } else {
        echo '<pre>false</pre>';
    }

$command->href 将输出如下内容: /path/index.php?option=com_component&view=orders§current_view 正在输出 orders。这些输出是动态生成的,但方案将始终相同。

我需要做的是 return true/false 如果来自 $current_view 的词与来自 $command->href 的 URL 中的 view=orders 匹配。我的代码的问题是,它不匹配任何东西。 正确的做法是什么?

请注意 $command->href 和整个代码都在一个 while 函数中,它传递多个 URL,而这只需要匹配相同的 URL。

做类似的事情:

if(substr($command->href, strrpos($command->href, '&') + 6) == $current_view)

完成你的追求?

解释一下,strpos 获取字符串中字符的 last 实例(& 对你来说,因为你说它总是遵循方案)。然后我们移动 6 个字符以从字符串中取出“&view=”。

您现在应该只剩下 "orders" == "orders"。

或者您有时会在视图后添加一些参数吗?

使用您的代码和变量值将其分解为一个简单示例。

$current_view = 'orders';
$command = '/path/index.php?option=com_component&view=orders';
if(strpos($command,$current_view) !== false){
    echo '<pre>true</pre>';
}
else {
    echo '<pre>false</pre>';
}

输出为 "true"。

现在,去调试 $command->href 和 $current_view...

的真实值

我非常确信这些值不是您认为的

尝试解析 url,提取您的 view 查询字符串值并将其与 $current_view

进行比较
$query= [];
parse_str(parse_url($command->href)['query'], $query);

if($current_view === $query["view"])
    echo '<pre>true</pre>';
} else {
    echo '<pre>false</pre>';
}