一种使用 switch 的方法,检查“url/file?get.php?[request uri]

我试图检测 url 何时为“localhost/asignaciones”,但是当我通过按钮提交某些内容时 url 会发生变化,因此它会像这样“localhost/asignaciones?asg=2222”,所以“/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';

}


千巷猫影
浏览 218回答 2
2回答

牛魔王的故事

要实现您想要的目标,您需要传入要检查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 是否包含字符串,您可以使用strposPHP 函数,如下所示:$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';}
打开App,查看更多内容
随时随地看视频慕课网APP