簡體   English   中英

一種使用開關的方法,以檢查“ url / file?get.php?”中是否存在“ url / file” [request uri]

[英]A way to use switch, to check if “url/file” is present in "url/file?get.php? [request uri]

我正在嘗試檢測網址何時是“ localhost / asignaciones”,但是當我通過按鈕提交某些內容時,URL會更改,因此它像這樣“ localhost / asignaciones?asg = 2222”一樣保留,因此情況“ / asignaciones”為false

$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';
}

您在代碼中犯了一些錯誤。

要檢查您的網址是否包含字符串,可以使用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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM