我有一个函数,它检查了我传入的页面链接和请求URI。
function setActiveMenuState($pageLink) {
$requestUri = $_SERVER['REQUEST_URI'];
if ($pageLink == $requestUri) {
return "active";
}
}
这是这样工作的:
<li class="<?= setActiveMenuState("/find-a-job/"); ?>">
这很好,但我现在需要在页面链接可能不同的页面上检查活动状态。
例如
find-a-job
find-a-job/jobs/test-job-1
find-a-job/jobs/test-job-2
以上所有内容都需要将列表元素设置为具有相同的活动状态,但此链接:
find-a-job/about-us
不应该将该列表元素设置为活动。
我试过一个例子:
if (preg_match($pageLink, $requestUri)) {
return "active";
}
但这当然会匹配每个找到工作的url。
我需要某种通配符方法,所以find-a-job/jobs/*
有什么帮助吗?
您已经有了它,如果preg_match使用/find-a-job/jobs/
而不是/find-a-job/
,它应该可以在中工作
这应该能在中工作
preg_match("/find-a-(job)(?:'/'1s.*)?/", $input_line, $output_array);
Regex Demo