一种使用 switch 的方法,检查 "url/file" 是否存在于 "url/file?get.php? [request uri]
A way to use switch, to check if "url/file" is present in "url/file?get.php? [request uri]
我正在尝试检测 url 何时为 "localhost/asignaciones",但是当我通过按钮提交内容时 url 会发生变化,所以它会像这样 "localhost/asignaciones?asg=2222"
所以 case "/asignaciones" 是假的
$url = $_SERVER['REQUEST_URI'];
switch ($url) {
case "/asignaciones?ireelevant_stuff":
$asignaciones = 'active_button';
$combinaciones = 'unactive_button';
break;
case:
$asignaciones = 'unactive_button';
$combinaciones = 'active_button';
}
对不起,我不知道怎么解释更好。
感谢@user3783243
固定码:
$url = $_SERVER['REQUEST_URI'];
$asiguri = 'asignaciones';
$comburi = 'combinaciones';
$legauri = 'legajos';
$inicuri = '/';
switch (true) {
case strpos($url,$asiguri) === 1: //when $url = '/asignaciones' strpos returns '0' so 'asignaciones' returns '1'. when it returns 1 the code executes until the break
$asignaciones = 'active_button';
$combinaciones = $legajos = $inicio = 'unactive_button';
break;
case strpos($url,$comburi) === 1:
$asignaciones = $legajos = $inicio = 'unactive_button';
$combinaciones = 'active_button';
break;
case strpos($url,$legauri) === 1:
$asignaciones = $combinaciones = $inicio = 'unactive_button';
$legajos = 'active_button';
break;
case strpos($url, $inicuri) === 0: //leave at last because '/' is present in every other
$asignaciones = $combinaciones = $legajos = 'unactive_button';
$inicio = 'active_button';
break;
default:
$asignaciones = $combinaciones = $legajos = $inicio = 'unactive_button';
}
您的代码有一些错误。
要检查您的 url 是否包含字符串,您可以使用 strpos
PHP 函数,如下所示:
$url = $_SERVER['REQUEST_URI'];
if (strpos($url, '/asignaciones') !== false) {
// The string $url contains "/asignaciones"
$asignaciones = 'active_button';
$combinaciones = 'unactive_button';
} else {
// The string $url DOES NOT contain "/asignaciones"
$asignaciones = 'unactive_button';
$combinaciones = 'active_button';
}
要实现您想要的效果,您需要传入 TRUE
作为 switch
值进行检查,然后传入对案例的评估。
switch (true) {
case ($url == "/asignaciones?ireelevant_stuff"):
$asignaciones = 'active_button';
$combinaciones = 'unactive_button';
break;
case ($url == "otherpath"):
$asignaciones = 'unactive_button';
$combinaciones = 'active_button';
break;
}
手册在用户贡献中也有这样的例子,https://www.php.net/manual/en/control-structures.switch.php#9610。
我正在尝试检测 url 何时为 "localhost/asignaciones",但是当我通过按钮提交内容时 url 会发生变化,所以它会像这样 "localhost/asignaciones?asg=2222" 所以 case "/asignaciones" 是假的
$url = $_SERVER['REQUEST_URI'];
switch ($url) {
case "/asignaciones?ireelevant_stuff":
$asignaciones = 'active_button';
$combinaciones = 'unactive_button';
break;
case:
$asignaciones = 'unactive_button';
$combinaciones = 'active_button';
}
对不起,我不知道怎么解释更好。
感谢@user3783243
固定码:
$url = $_SERVER['REQUEST_URI'];
$asiguri = 'asignaciones';
$comburi = 'combinaciones';
$legauri = 'legajos';
$inicuri = '/';
switch (true) {
case strpos($url,$asiguri) === 1: //when $url = '/asignaciones' strpos returns '0' so 'asignaciones' returns '1'. when it returns 1 the code executes until the break
$asignaciones = 'active_button';
$combinaciones = $legajos = $inicio = 'unactive_button';
break;
case strpos($url,$comburi) === 1:
$asignaciones = $legajos = $inicio = 'unactive_button';
$combinaciones = 'active_button';
break;
case strpos($url,$legauri) === 1:
$asignaciones = $combinaciones = $inicio = 'unactive_button';
$legajos = 'active_button';
break;
case strpos($url, $inicuri) === 0: //leave at last because '/' is present in every other
$asignaciones = $combinaciones = $legajos = 'unactive_button';
$inicio = 'active_button';
break;
default:
$asignaciones = $combinaciones = $legajos = $inicio = 'unactive_button';
}
您的代码有一些错误。
要检查您的 url 是否包含字符串,您可以使用 strpos
PHP 函数,如下所示:
$url = $_SERVER['REQUEST_URI'];
if (strpos($url, '/asignaciones') !== false) {
// The string $url contains "/asignaciones"
$asignaciones = 'active_button';
$combinaciones = 'unactive_button';
} else {
// The string $url DOES NOT contain "/asignaciones"
$asignaciones = 'unactive_button';
$combinaciones = 'active_button';
}
要实现您想要的效果,您需要传入 TRUE
作为 switch
值进行检查,然后传入对案例的评估。
switch (true) {
case ($url == "/asignaciones?ireelevant_stuff"):
$asignaciones = 'active_button';
$combinaciones = 'unactive_button';
break;
case ($url == "otherpath"):
$asignaciones = 'unactive_button';
$combinaciones = 'active_button';
break;
}
手册在用户贡献中也有这样的例子,https://www.php.net/manual/en/control-structures.switch.php#9610。